<aside> ☝ If a writeback function throws an “unknown function” error in your Python script, this could be because you are on an old version of the connector. In that case do a “Full Resync” under Connections, so that the newest version of the connector is loaded and used in your writeback scripts. “Full resync” will update the connector used in your account to the latest version.
</aside>
Here’s an example using Odoo (ERP):
Odoo = pq.connect("Odoo") # use your name of the connection
result = Odoo.update("product", id = 1, name = "New product name")
st.text("Result from writeback: %s" % result)
Odoo.add("product", name="My product", price=100.05)
Odoo.update("invoice", id=123, payment_state = "in_payment", note = "...")
Odoo.delete("product", id=456)
pq.refresh_connection(connection_name = "Odoo") # see below
After running a writeback script, you typically want to refresh the data in Peliqan to see the updated data from the source, and potentially verify if the writeback was successful.
Examples:
pq.refresh_connection(connection_name = "Odoo", is_async = False)
pq.refresh_connection(connection_id = 789)
is_async
is an optional parameter:
is_async = True
(Default): do not wait for refresh to completeis_async = False
: wait for refresh to complete<aside> ⚠️ Do not execute multiple refreshes within one script execution. Avoid using refresh in a loop, and call these functions only at the end of your writeback script.
</aside>
Example looping over rows of a table in Peliqan for writeback:
dbconn = pq.dbconnect('dw_123')
rows = dbconn.fetch('dw_123', 'schema_name', 'table_name')
for row in rows:
Odoo.update("product", id = row["id"], name = row["name"])