Back to Collection Items
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
DECLARE @iTmp0 int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
DECLARE @http int
-- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
DECLARE @success int
-- Use this online tool to generate code from sample XML: Generate Code to Create XML
-- The following XML is sent in the request body.
-- <?xml version="1.0" encoding="UTF-8"?>
-- <user>
-- <login>coupasam1</login>
-- <email>coupasam1@coupa.com</email>
-- <firstname>Coupa</firstname>
-- <lastname>Sam 1</lastname>
-- <fullname>Coupa Sam 1</fullname>
-- <purchasing-user>true</purchasing-user>
-- <expense-user>false</expense-user>
-- <sourcing-user>false</sourcing-user>
-- <inventory-user>false</inventory-user>
-- <contracts-user>false</contracts-user>
-- <analytics-user>false</analytics-user>
-- <aic-user>false</aic-user>
-- <spend-guard-user>false</spend-guard-user>
-- <ccw-user>false</ccw-user>
-- <clm-advanced-user>false</clm-advanced-user>
-- <supply-chain-user>false</supply-chain-user>
-- <risk-assess-user>false</risk-assess-user>
-- <employee-number>123456789</employee-number>
-- <active>true</active>
-- <account-security-type>0</account-security-type>
-- <authentication-method>saml</authentication-method>
-- <sso-identifier>coupasam1@coupa.com</sso-identifier>
-- <default-locale nil="true"/>
-- <business-group-security-type>1</business-group-security-type>
-- <edit-invoice-on-quick-entry>false</edit-invoice-on-quick-entry>
-- <avatar-thumb-url nil="true"/>
-- <mention-name>coupasam1</mention-name>
-- <seniority-level nil="true"/>
-- <business-function nil="true"/>
-- <employee-payment-channel>ERP</employee-payment-channel>
-- <allow-employee-payment-account-creation>false</allow-employee-payment-account-creation>
-- <rank/>
-- <default-cost-center/>
-- <phone-work>
-- <country-code>1</country-code>
-- <area-code>650</area-code>
-- <number>5856306</number>
-- <extension nil="true"/>
-- </phone-work>
-- <roles>
-- <role>
-- <name>User</name>
-- </role>
-- <role>
-- <name>Central Receiving</name>
-- </role>
-- <role>
-- <name>Edit Requisition as Approver</name>
-- </role>
-- <role>
-- <name>Dashboard</name>
-- </role>
-- <role>
-- <name>Split Accounting</name>
-- </role>
-- </roles>
-- <manager>
-- <login>mjordan</login>
-- </manager>
-- <default-account>
-- <code>SF-Finance-Indirect</code>
-- <segment-1>SF</segment-1>
-- <segment-2>Finance</segment-2>
-- <segment-3>Indirect</segment-3>
-- <account-type>
-- <name>ERP 1</name>
-- <currency>
-- <code>USD</code>
-- </currency>
-- </account-type>
-- </default-account>
-- <default-account-type>
-- <name>ERP 1</name>
-- <currency>
-- <code>USD</code>
-- </currency>
-- </default-account-type>
-- <default-currency>
-- <code>USD</code>
-- </default-currency>
-- <department>
-- <name>Marketing</name>
-- </department>
-- <requisition-approval-limit>
-- <amount>10000.00</amount>
-- <currency>
-- <code>USD</code>
-- </currency>
-- </requisition-approval-limit>
-- <invoice-approval-limit>
-- <amount>15000.00</amount>
-- <currency>
-- <code>USD</code>
-- </currency>
-- </invoice-approval-limit>
-- <requisition-self-approval-limit>
-- <amount>500.00</amount>
-- <currency>
-- <code>USD</code>
-- </currency>
-- </requisition-self-approval-limit>
-- <expenses-delegated-to/>
-- <can-expense-for/>
-- <content-groups/>
-- <account-groups/>
-- <approval-groups/>
-- <user-groups/>
-- <working-warehouses/>
-- <inventory-organizations/>
-- </user>
--
DECLARE @xml int
-- Use "Chilkat_9_5_0.Xml" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.Xml', @xml OUT
EXEC sp_OASetProperty @xml, 'Tag', 'user'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'login', 'coupasam1'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'email', 'coupasam1@coupa.com'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'firstname', 'Coupa'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'lastname', 'Sam 1'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'fullname', 'Coupa Sam 1'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'purchasing-user', 'true'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'expense-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'sourcing-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'inventory-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'contracts-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'analytics-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'aic-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'spend-guard-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'ccw-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'clm-advanced-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'supply-chain-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'risk-assess-user', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContentInt', NULL, 'employee-number', 123456789
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'active', 'true'
EXEC sp_OAMethod @xml, 'UpdateChildContentInt', NULL, 'account-security-type', 0
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'authentication-method', 'saml'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'sso-identifier', 'coupasam1@coupa.com'
EXEC sp_OAMethod @xml, 'UpdateAttrAt', @success OUT, 'default-locale', 1, 'nil', 'true'
EXEC sp_OAMethod @xml, 'UpdateChildContentInt', NULL, 'business-group-security-type', 1
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'edit-invoice-on-quick-entry', 'false'
EXEC sp_OAMethod @xml, 'UpdateAttrAt', @success OUT, 'avatar-thumb-url', 1, 'nil', 'true'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'mention-name', 'coupasam1'
EXEC sp_OAMethod @xml, 'UpdateAttrAt', @success OUT, 'seniority-level', 1, 'nil', 'true'
EXEC sp_OAMethod @xml, 'UpdateAttrAt', @success OUT, 'business-function', 1, 'nil', 'true'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'employee-payment-channel', 'ERP'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'allow-employee-payment-account-creation', 'false'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'rank', ''
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-cost-center', ''
EXEC sp_OAMethod @xml, 'UpdateChildContentInt', NULL, 'phone-work|country-code', 1
EXEC sp_OAMethod @xml, 'UpdateChildContentInt', NULL, 'phone-work|area-code', 650
EXEC sp_OAMethod @xml, 'UpdateChildContentInt', NULL, 'phone-work|number', 5856306
EXEC sp_OAMethod @xml, 'UpdateAttrAt', @success OUT, 'phone-work|extension', 1, 'nil', 'true'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'roles|role|name', 'User'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'roles|role[1]|name', 'Central Receiving'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'roles|role[2]|name', 'Edit Requisition as Approver'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'roles|role[3]|name', 'Dashboard'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'roles|role[4]|name', 'Split Accounting'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'manager|login', 'mjordan'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-account|code', 'SF-Finance-Indirect'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-account|segment-1', 'SF'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-account|segment-2', 'Finance'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-account|segment-3', 'Indirect'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-account|account-type|name', 'ERP 1'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-account|account-type|currency|code', 'USD'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-account-type|name', 'ERP 1'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-account-type|currency|code', 'USD'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'default-currency|code', 'USD'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'department|name', 'Marketing'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'requisition-approval-limit|amount', '10000.00'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'requisition-approval-limit|currency|code', 'USD'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'invoice-approval-limit|amount', '15000.00'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'invoice-approval-limit|currency|code', 'USD'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'requisition-self-approval-limit|amount', '500.00'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'requisition-self-approval-limit|currency|code', 'USD'
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'expenses-delegated-to', ''
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'can-expense-for', ''
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'content-groups', ''
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'account-groups', ''
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'approval-groups', ''
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'user-groups', ''
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'working-warehouses', ''
EXEC sp_OAMethod @xml, 'UpdateChildContent', NULL, 'inventory-organizations', ''
-- Adds the "Authorization: Bearer <access_token>" header.
EXEC sp_OASetProperty @http, 'AuthToken', '<access_token>'
DECLARE @sbRequestBody int
-- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0
EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbRequestBody OUT
EXEC sp_OAMethod @xml, 'GetXmlSb', @success OUT, @sbRequestBody
DECLARE @resp int
EXEC sp_OAMethod @http, 'PTextSb', @resp OUT, 'POST', 'https://domain.com/users?fields=["id"]', @sbRequestBody, 'utf-8', 'application/xml', 0, 0
EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT
IF @iTmp0 = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @xml
EXEC @hr = sp_OADestroy @sbRequestBody
RETURN
END
EXEC sp_OAGetProperty @resp, 'StatusCode', @iTmp0 OUT
PRINT @iTmp0
EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @xml
EXEC @hr = sp_OADestroy @sbRequestBody
END
GO
Curl Command
curl -X POST
-H "Authorization: Bearer <access_token>"
-d '<?xml version="1.0" encoding="UTF-8"?>
<user>
<login>coupasam1</login>
<email>coupasam1@coupa.com</email>
<firstname>Coupa</firstname>
<lastname>Sam 1</lastname>
<fullname>Coupa Sam 1</fullname>
<purchasing-user>true</purchasing-user>
<expense-user>false</expense-user>
<sourcing-user>false</sourcing-user>
<inventory-user>false</inventory-user>
<contracts-user>false</contracts-user>
<analytics-user>false</analytics-user>
<aic-user>false</aic-user>
<spend-guard-user>false</spend-guard-user>
<ccw-user>false</ccw-user>
<clm-advanced-user>false</clm-advanced-user>
<supply-chain-user>false</supply-chain-user>
<risk-assess-user>false</risk-assess-user>
<employee-number>123456789</employee-number>
<active>true</active>
<account-security-type>0</account-security-type>
<authentication-method>saml</authentication-method>
<sso-identifier>coupasam1@coupa.com</sso-identifier>
<default-locale nil="true"/>
<business-group-security-type>1</business-group-security-type>
<edit-invoice-on-quick-entry>false</edit-invoice-on-quick-entry>
<avatar-thumb-url nil="true"/>
<mention-name>coupasam1</mention-name>
<seniority-level nil="true"/>
<business-function nil="true"/>
<employee-payment-channel>ERP</employee-payment-channel>
<allow-employee-payment-account-creation>false</allow-employee-payment-account-creation>
<rank></rank>
<default-cost-center></default-cost-center>
<phone-work>
<country-code>1</country-code>
<area-code>650</area-code>
<number>5856306</number>
<extension nil="true"/>
</phone-work>
<roles>
<role>
<name>User</name>
</role>
<role>
<name>Central Receiving</name>
</role>
<role>
<name>Edit Requisition as Approver</name>
</role>
<role>
<name>Dashboard</name>
</role>
<role>
<name>Split Accounting</name>
</role>
</roles>
<manager>
<login>mjordan</login>
</manager>
<default-account>
<code>SF-Finance-Indirect</code>
<segment-1>SF</segment-1>
<segment-2>Finance</segment-2>
<segment-3>Indirect</segment-3>
<account-type>
<name>ERP 1</name>
<currency>
<code>USD</code>
</currency>
</account-type>
</default-account>
<default-account-type>
<name>ERP 1</name>
<currency>
<code>USD</code>
</currency>
</default-account-type>
<default-currency>
<code>USD</code>
</default-currency>
<department>
<name>Marketing</name>
</department>
<requisition-approval-limit>
<amount>10000.00</amount>
<currency>
<code>USD</code>
</currency>
</requisition-approval-limit>
<invoice-approval-limit>
<amount>15000.00</amount>
<currency>
<code>USD</code>
</currency>
</invoice-approval-limit>
<requisition-self-approval-limit>
<amount>500.00</amount>
<currency>
<code>USD</code>
</currency>
</requisition-self-approval-limit>
<expenses-delegated-to/>
<can-expense-for/>
<content-groups/>
<account-groups/>
<approval-groups/>
<user-groups/>
<working-warehouses/>
<inventory-organizations/>
</user>'
https://domain.com/users?fields=["id"]
Postman Collection Item JSON
{
"name": "Create A User",
"request": {
"method": "POST",
"header": [
],
"body": {
"mode": "raw",
"raw": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<user>\n <login>coupasam1</login>\n <email>coupasam1@coupa.com</email>\n <firstname>Coupa</firstname>\n <lastname>Sam 1</lastname>\n <fullname>Coupa Sam 1</fullname>\n <purchasing-user>true</purchasing-user>\n <expense-user>false</expense-user>\n <sourcing-user>false</sourcing-user>\n <inventory-user>false</inventory-user>\n <contracts-user>false</contracts-user>\n <analytics-user>false</analytics-user>\n <aic-user>false</aic-user>\n <spend-guard-user>false</spend-guard-user>\n <ccw-user>false</ccw-user>\n <clm-advanced-user>false</clm-advanced-user>\n <supply-chain-user>false</supply-chain-user>\n <risk-assess-user>false</risk-assess-user>\n <employee-number>123456789</employee-number>\n <active>true</active>\n <account-security-type>0</account-security-type>\n <authentication-method>saml</authentication-method>\n <sso-identifier>coupasam1@coupa.com</sso-identifier>\n <default-locale nil=\"true\"/>\n <business-group-security-type>1</business-group-security-type>\n <edit-invoice-on-quick-entry>false</edit-invoice-on-quick-entry>\n <avatar-thumb-url nil=\"true\"/>\n <mention-name>coupasam1</mention-name>\n <seniority-level nil=\"true\"/>\n <business-function nil=\"true\"/>\n <employee-payment-channel>ERP</employee-payment-channel>\n <allow-employee-payment-account-creation>false</allow-employee-payment-account-creation>\n <rank></rank>\n <default-cost-center></default-cost-center>\n <phone-work>\n <country-code>1</country-code>\n <area-code>650</area-code>\n <number>5856306</number>\n <extension nil=\"true\"/>\n </phone-work>\n <roles>\n <role>\n <name>User</name>\n </role>\n <role>\n <name>Central Receiving</name>\n </role>\n <role>\n <name>Edit Requisition as Approver</name>\n </role>\n <role>\n <name>Dashboard</name>\n </role>\n <role>\n <name>Split Accounting</name>\n </role>\n </roles>\n <manager>\n <login>mjordan</login>\n </manager>\n <default-account>\n <code>SF-Finance-Indirect</code>\n <segment-1>SF</segment-1>\n <segment-2>Finance</segment-2>\n <segment-3>Indirect</segment-3>\n <account-type>\n <name>ERP 1</name>\n <currency>\n <code>USD</code>\n </currency>\n </account-type>\n </default-account>\n <default-account-type>\n <name>ERP 1</name>\n <currency>\n <code>USD</code>\n </currency>\n </default-account-type>\n <default-currency>\n <code>USD</code>\n </default-currency>\n <department>\n <name>Marketing</name>\n </department>\n <requisition-approval-limit>\n <amount>10000.00</amount>\n <currency>\n <code>USD</code>\n </currency>\n </requisition-approval-limit>\n <invoice-approval-limit>\n <amount>15000.00</amount>\n <currency>\n <code>USD</code>\n </currency>\n </invoice-approval-limit>\n <requisition-self-approval-limit>\n <amount>500.00</amount>\n <currency>\n <code>USD</code>\n </currency>\n </requisition-self-approval-limit>\n <expenses-delegated-to/>\n <can-expense-for/>\n <content-groups/>\n <account-groups/>\n <approval-groups/>\n <user-groups/>\n <working-warehouses/>\n <inventory-organizations/>\n</user>",
"options": {
"raw": {
"language": "xml"
}
}
},
"url": {
"raw": "{{URL}}/users?fields=[\"id\"]",
"host": [
"{{URL}}"
],
"path": [
"users"
],
"query": [
{
"key": "fields",
"value": "[\"id\"]"
}
]
}
},
"response": [
]
}