Skip to main content

Actions

The ballerinax/microsoft.dynamics365.finance.workflow package exposes the following clients:

ClientPurpose
ClientProvides full CRUD access to Microsoft Dynamics 365 Finance workflow definitions, action classes, actions, advanced rules, approval users, batch groups, batch jobs, database logs, workflow operations, policy types, policy rules, process stages, and rec setup bases via the Dynamics 365 Finance and Operations OData API.

Client

Provides full CRUD access to Microsoft Dynamics 365 Finance workflow definitions, action classes, actions, advanced rules, approval users, batch groups, batch jobs, database logs, workflow operations, policy types, policy rules, process stages, and rec setup bases via the Dynamics 365 Finance and Operations OData API.

Configuration

FieldTypeDefaultDescription
authOAuth2ClientCredentialsGrantConfigRequiredOAuth2 client credentials grant configuration used to authenticate with Microsoft Entra ID (tokenUrl, clientId, clientSecret, scopes).
httpVersionhttp:HttpVersion"2.0"HTTP protocol version used for outbound requests to the environment.
http1Settingshttp:ClientHttp1Settings{}HTTP/1.x client settings, including keep-alive, chunking, and proxy configuration.
secureSockethttp:ClientSecureSocket()SSL/TLS configuration for secure connections.
proxyhttp:ProxyConfig()Proxy server configuration.

Initializing the client

import ballerinax/microsoft.dynamics365.finance.workflow;

configurable string tokenUrl = ?;
configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string serviceUrl = ?;

workflow:Client fo = check new (
{
auth: {
tokenUrl,
clientId,
clientSecret
}
},
serviceUrl
);

Operations

Action Classes

listActionClasses

Lists action classes.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListActionClassesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: ActionClassesCollection|error

Sample code:

workflow:ActionClassesCollection result = check fo->listActionClasses(
queries = {filter: "ActionType eq 'User'", top: 20}
);
createActionClasses

Creates an action class.

Parameters:

NameTypeRequiredDescription
payloadActionClassYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: ActionClass|error

Sample code:

workflow:ActionClass created = check fo->createActionClasses({
dataAreaId: "usmf",
executableClass: "EmailNotificationAction",
description: "Sends an email notification",
actionType: "User",
className: "EmailNotificationActionClass"
});
getActionClasses

Retrieves an action class by key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
executableClassstringYesThe executable class key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetActionClassesQueriesNoOData query parameters: $expand, $select.

Returns: ActionClass|error

Sample code:

workflow:ActionClass actionClass = check fo->getActionClasses("usmf", "EmailNotificationAction");
deleteActionClasses

Deletes an action class.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
executableClassstringYesThe executable class key field.
headersDeleteActionClassesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteActionClasses("usmf", "EmailNotificationAction", headers = {ifMatch: eTag});
updateActionClasses

Updates an action class.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
executableClassstringYesThe executable class key field.
payloadActionClassYesThe request body.
headersUpdateActionClassesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: ActionClass|error

Sample code:

workflow:ActionClass updated = check fo->updateActionClasses(
"usmf",
"EmailNotificationAction",
{description: "Sends an email notification to the assigned approver"},
headers = {ifMatch: eTag}
);

Actions

listActions

Lists actions.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListActionsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: ActionsCollection|error

Sample code:

workflow:ActionsCollection result = check fo->listActions(
queries = {filter: "ActionType eq 'User'"}
);
createActions

Creates an action.

Parameters:

NameTypeRequiredDescription
payloadActionYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: Action|error

Sample code:

workflow:Action created = check fo->createActions({
dataAreaId: "usmf",
action: "RequisitionApprovalNotify",
description: "Notify requisition approver",
actionType: "User",
executableClass: "EmailNotificationAction"
});
getActions

Retrieves an action by key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
actionstringYesThe action key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetActionsQueriesNoOData query parameters: $expand, $select.

Returns: Action|error

Sample code:

workflow:Action action = check fo->getActions("usmf", "RequisitionApprovalNotify");
deleteActions

Deletes an action.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
actionstringYesThe action key field.
headersDeleteActionsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteActions("usmf", "RequisitionApprovalNotify", headers = {ifMatch: eTag});
updateActions

Updates an action.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
actionstringYesThe action key field.
payloadActionYesThe request body.
headersUpdateActionsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: Action|error

Sample code:

workflow:Action updated = check fo->updateActions(
"usmf",
"RequisitionApprovalNotify",
{description: "Notify requisition approver by email and Teams"},
headers = {ifMatch: eTag}
);

Advanced Rules

listAdvancedRules

Lists advanced (dimension hierarchy) rules.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListAdvancedRulesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: AdvancedRulesCollection|error

Sample code:

workflow:AdvancedRulesCollection result = check fo->listAdvancedRules(
queries = {filter: "RuleType eq 'GeneralLedger'"}
);
createAdvancedRules

Creates an advanced rule.

Parameters:

NameTypeRequiredDescription
payloadAdvancedRuleYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: AdvancedRule|error

Sample code:

workflow:AdvancedRule created = check fo->createAdvancedRules({
accountStructure: "Operations",
advancedRuleName: "DeptSecurityRule",
status: "Draft",
description: "Department-based security rule",
ruleType: "GeneralLedger",
advancedRuleStructure1: "Department"
});
getAdvancedRules

Retrieves an advanced rule by key.

Parameters:

NameTypeRequiredDescription
accountStructurestringYesThe account structure key field.
advancedRuleNamestringYesThe advanced rule name key field.
statusstringYesThe status key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetAdvancedRulesQueriesNoOData query parameters: $expand, $select.

Returns: AdvancedRule|error

Sample code:

workflow:AdvancedRule advancedRule = check fo->getAdvancedRules("Operations", "DeptSecurityRule", "Draft");
deleteAdvancedRules

Deletes an advanced rule.

Parameters:

NameTypeRequiredDescription
accountStructurestringYesThe account structure key field.
advancedRuleNamestringYesThe advanced rule name key field.
statusstringYesThe status key field.
headersDeleteAdvancedRulesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteAdvancedRules("Operations", "DeptSecurityRule", "Draft", headers = {ifMatch: eTag});
updateAdvancedRules

Updates an advanced rule.

Parameters:

NameTypeRequiredDescription
accountStructurestringYesThe account structure key field.
advancedRuleNamestringYesThe advanced rule name key field.
statusstringYesThe status key field.
payloadAdvancedRuleYesThe request body.
headersUpdateAdvancedRulesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: AdvancedRule|error

Sample code:

workflow:AdvancedRule updated = check fo->updateAdvancedRules(
"Operations",
"DeptSecurityRule",
"Draft",
{status: "Active"},
headers = {ifMatch: eTag}
);

Approval Users

listApprovalUsers

Lists approval users.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListApprovalUsersQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: ApprovalUsersCollection|error

Sample code:

workflow:ApprovalUsersCollection result = check fo->listApprovalUsers(
queries = {filter: "UserCompany eq 'usmf'"}
);
createApprovalUsers

Creates an approval user.

Parameters:

NameTypeRequiredDescription
payloadApprovalUserYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: ApprovalUser|error

Sample code:

workflow:ApprovalUser created = check fo->createApprovalUsers({
userId: "[email protected]",
userName: "Jane Perera",
userCompany: "usmf"
});
getApprovalUsers

Retrieves an approval user by key.

Parameters:

NameTypeRequiredDescription
userIdstringYesThe user id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetApprovalUsersQueriesNoOData query parameters: $expand, $select.

Returns: ApprovalUser|error

Sample code:

workflow:ApprovalUser approvalUser = check fo->getApprovalUsers("[email protected]");
deleteApprovalUsers

Deletes an approval user.

Parameters:

NameTypeRequiredDescription
userIdstringYesThe user id key field.
headersDeleteApprovalUsersHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteApprovalUsers("[email protected]", headers = {ifMatch: eTag});
updateApprovalUsers

Updates an approval user.

Parameters:

NameTypeRequiredDescription
userIdstringYesThe user id key field.
payloadApprovalUserYesThe request body.
headersUpdateApprovalUsersHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: ApprovalUser|error

Sample code:

workflow:ApprovalUser updated = check fo->updateApprovalUsers(
"[email protected]",
{userName: "Jane A. Perera"},
headers = {ifMatch: eTag}
);

Batch Groups

listBatchGroups

Lists batch groups.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListBatchGroupsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: BatchGroupsCollection|error

Sample code:

workflow:BatchGroupsCollection result = check fo->listBatchGroups();
createBatchGroups

Creates a batch group.

Parameters:

NameTypeRequiredDescription
payloadBatchGroupYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: BatchGroup|error

Sample code:

workflow:BatchGroup created = check fo->createBatchGroups({
groupId: "50",
serverId: "AOS-01",
description: "Workflow escalation batch group"
});
getBatchGroups

Retrieves a batch group by key.

Parameters:

NameTypeRequiredDescription
groupIdstringYesThe group id key field.
serverIdstringYesThe server id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetBatchGroupsQueriesNoOData query parameters: $expand, $select.

Returns: BatchGroup|error

Sample code:

workflow:BatchGroup batchGroup = check fo->getBatchGroups("50", "AOS-01");
deleteBatchGroups

Deletes a batch group.

Parameters:

NameTypeRequiredDescription
groupIdstringYesThe group id key field.
serverIdstringYesThe server id key field.
headersDeleteBatchGroupsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteBatchGroups("50", "AOS-01", headers = {ifMatch: eTag});
updateBatchGroups

Updates a batch group.

Parameters:

NameTypeRequiredDescription
groupIdstringYesThe group id key field.
serverIdstringYesThe server id key field.
payloadBatchGroupYesThe request body.
headersUpdateBatchGroupsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: BatchGroup|error

Sample code:

workflow:BatchGroup updated = check fo->updateBatchGroups(
"50",
"AOS-01",
{description: "Workflow escalation and reminder batch group"},
headers = {ifMatch: eTag}
);

Batch Jobs

listBatchJobs

Lists batch jobs.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListBatchJobsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: BatchJobsCollection|error

Sample code:

workflow:BatchJobsCollection result = check fo->listBatchJobs(
queries = {filter: "Status eq 'Waiting'"}
);
createBatchJobs

Creates a batch job.

Parameters:

NameTypeRequiredDescription
payloadBatchJobYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: BatchJob|error

Sample code:

workflow:BatchJob created = check fo->createBatchJobs({
jobDescription: "Workflow reminder batch job",
companyAccounts: "usmf",
status: "Waiting"
});
getBatchJobs

Retrieves a batch job by key.

Parameters:

NameTypeRequiredDescription
batchJobRecIdintYesThe batch job rec id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetBatchJobsQueriesNoOData query parameters: $expand, $select.

Returns: BatchJob|error

Sample code:

workflow:BatchJob batchJob = check fo->getBatchJobs(5637144245);
deleteBatchJobs

Deletes a batch job.

Parameters:

NameTypeRequiredDescription
batchJobRecIdintYesThe batch job rec id key field.
headersDeleteBatchJobsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteBatchJobs(5637144245, headers = {ifMatch: eTag});
updateBatchJobs

Updates a batch job.

Parameters:

NameTypeRequiredDescription
batchJobRecIdintYesThe batch job rec id key field.
payloadBatchJobYesThe request body.
headersUpdateBatchJobsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: BatchJob|error

Sample code:

workflow:BatchJob updated = check fo->updateBatchJobs(
5637144245,
{status: "Hold"},
headers = {ifMatch: eTag}
);

Database Logs

listDatabaseLogs

Lists database log records.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListDatabaseLogsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: DatabaseLogsCollection|error

Sample code:

workflow:DatabaseLogsCollection result = check fo->listDatabaseLogs(
queries = {filter: "TableName eq 'VendTable'", top: 50}
);
createDatabaseLogs

Creates a database log record.

Parameters:

NameTypeRequiredDescription
payloadDatabaseLogYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: DatabaseLog|error

Sample code:

workflow:DatabaseLog created = check fo->createDatabaseLogs({
dataAreaId: "usmf",
tableName: "VendTable",
logType: "Update",
username: "[email protected]"
});
getDatabaseLogs

Retrieves a database log record by key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
tableRecIdintYesThe table rec id key field.
logRecIdintYesThe log rec id key field.
tableIdNumberintYesThe table id number key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetDatabaseLogsQueriesNoOData query parameters: $expand, $select.

Returns: DatabaseLog|error

Sample code:

workflow:DatabaseLog log = check fo->getDatabaseLogs("usmf", 5637190083, 8420176, 872);
deleteDatabaseLogs

Deletes a database log record.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
tableRecIdintYesThe table rec id key field.
logRecIdintYesThe log rec id key field.
tableIdNumberintYesThe table id number key field.
headersDeleteDatabaseLogsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteDatabaseLogs("usmf", 5637190083, 8420176, 872, headers = {ifMatch: eTag});
updateDatabaseLogs

Updates a database log record.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
tableRecIdintYesThe table rec id key field.
logRecIdintYesThe log rec id key field.
tableIdNumberintYesThe table id number key field.
payloadDatabaseLogYesThe request body.
headersUpdateDatabaseLogsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: DatabaseLog|error

Sample code:

workflow:DatabaseLog updated = check fo->updateDatabaseLogs(
"usmf",
5637190083,
8420176,
872,
{formattedData: "Vendor on-hold status changed"},
headers = {ifMatch: eTag}
);

Workflow Operations

listOperations

Lists workflow operation types.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListOperationsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: OperationsCollection|error

Sample code:

workflow:OperationsCollection result = check fo->listOperations();
createOperations

Creates a workflow operation type.

Parameters:

NameTypeRequiredDescription
payloadOperationYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: Operation|error

Sample code:

workflow:Operation created = check fo->createOperations({
dataAreaId: "usmf",
operationId: "PurchReqApprove",
operationName: "Approve purchase requisition"
});
getOperations

Retrieves a workflow operation type by key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
operationIdstringYesThe operation id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetOperationsQueriesNoOData query parameters: $expand, $select.

Returns: Operation|error

Sample code:

workflow:Operation operation = check fo->getOperations("usmf", "PurchReqApprove");
deleteOperations

Deletes a workflow operation type.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
operationIdstringYesThe operation id key field.
headersDeleteOperationsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteOperations("usmf", "PurchReqApprove", headers = {ifMatch: eTag});
updateOperations

Updates a workflow operation type.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
operationIdstringYesThe operation id key field.
payloadOperationYesThe request body.
headersUpdateOperationsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: Operation|error

Sample code:

workflow:Operation updated = check fo->updateOperations(
"usmf",
"PurchReqApprove",
{operationName: "Approve purchase requisition (manager)"},
headers = {ifMatch: eTag}
);

Policy Rules

listPolicyRules

Lists policy rules.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListPolicyRulesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: PolicyRulesCollection|error

Sample code:

workflow:PolicyRulesCollection result = check fo->listPolicyRules(
queries = {filter: "PolicyType eq 'TrvExpensePolicy'"}
);
createPolicyRules

Creates a policy rule.

Parameters:

NameTypeRequiredDescription
payloadPolicyRuleYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: PolicyRule|error

Sample code:

workflow:PolicyRule created = check fo->createPolicyRules({
policyName: "TravelExpensePolicy",
policyType: "TrvExpensePolicy",
policyRuleName: "ReceiptRequiredOver100",
validFrom: "2026-01-01T00:00:00Z",
action: "Warning"
});
getPolicyRules

Retrieves a policy rule by key.

Parameters:

NameTypeRequiredDescription
policyNamestringYesThe policy name key field.
policyTypestringYesThe policy type key field.
policyRuleNamestringYesThe policy rule name key field.
validFromstringYesThe valid from key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetPolicyRulesQueriesNoOData query parameters: $expand, $select.

Returns: PolicyRule|error

Sample code:

workflow:PolicyRule policyRule = check fo->getPolicyRules(
"TravelExpensePolicy",
"TrvExpensePolicy",
"ReceiptRequiredOver100",
"2026-01-01T00:00:00Z"
);
deletePolicyRules

Deletes a policy rule.

Parameters:

NameTypeRequiredDescription
policyNamestringYesThe policy name key field.
policyTypestringYesThe policy type key field.
policyRuleNamestringYesThe policy rule name key field.
validFromstringYesThe valid from key field.
headersDeletePolicyRulesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deletePolicyRules(
"TravelExpensePolicy",
"TrvExpensePolicy",
"ReceiptRequiredOver100",
"2026-01-01T00:00:00Z",
headers = {ifMatch: eTag}
);
updatePolicyRules

Updates a policy rule.

Parameters:

NameTypeRequiredDescription
policyNamestringYesThe policy name key field.
policyTypestringYesThe policy type key field.
policyRuleNamestringYesThe policy rule name key field.
validFromstringYesThe valid from key field.
payloadPolicyRuleYesThe request body.
headersUpdatePolicyRulesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: PolicyRule|error

Sample code:

workflow:PolicyRule updated = check fo->updatePolicyRules(
"TravelExpensePolicy",
"TrvExpensePolicy",
"ReceiptRequiredOver100",
"2026-01-01T00:00:00Z",
{action: "ApproveJustification"},
headers = {ifMatch: eTag}
);

Policy Types

listPolicyTypes

Lists policy types.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListPolicyTypesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: PolicyTypesCollection|error

Sample code:

workflow:PolicyTypesCollection result = check fo->listPolicyTypes();
createPolicyTypes

Creates a policy type.

Parameters:

NameTypeRequiredDescription
payloadPolicyTypeYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: PolicyType|error

Sample code:

workflow:PolicyType created = check fo->createPolicyTypes({
policyType: "TrvExpensePolicy",
policyName: "Travel and expense policy",
purpose: "ExpenseControl"
});
getPolicyTypes

Retrieves a policy type by key.

Parameters:

NameTypeRequiredDescription
policyTypestringYesThe policy type key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetPolicyTypesQueriesNoOData query parameters: $expand, $select.

Returns: PolicyType|error

Sample code:

workflow:PolicyType policyType = check fo->getPolicyTypes("TrvExpensePolicy");
deletePolicyTypes

Deletes a policy type.

Parameters:

NameTypeRequiredDescription
policyTypestringYesThe policy type key field.
headersDeletePolicyTypesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deletePolicyTypes("TrvExpensePolicy", headers = {ifMatch: eTag});
updatePolicyTypes

Updates a policy type.

Parameters:

NameTypeRequiredDescription
policyTypestringYesThe policy type key field.
payloadPolicyTypeYesThe request body.
headersUpdatePolicyTypesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: PolicyType|error

Sample code:

workflow:PolicyType updated = check fo->updatePolicyTypes(
"TrvExpensePolicy",
{isPolicyReadOnly: "No"},
headers = {ifMatch: eTag}
);

Process Stages

listProcessStages

Lists process stages.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListProcessStagesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: ProcessStagesCollection|error

Sample code:

workflow:ProcessStagesCollection result = check fo->listProcessStages(
queries = {filter: "ProcessType eq 'Onboarding'"}
);
createProcessStages

Creates a process stage.

Parameters:

NameTypeRequiredDescription
payloadProcessStageYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: ProcessStage|error

Sample code:

workflow:ProcessStage created = check fo->createProcessStages({
dataAreaId: "usmf",
processType: "Onboarding",
name: "ManagerApproval",
description: "Manager approval stage",
sequenceNumber: 10
});
getProcessStages

Retrieves a process stage by key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
processTypestringYesThe process type key field.
namestringYesThe name key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetProcessStagesQueriesNoOData query parameters: $expand, $select.

Returns: ProcessStage|error

Sample code:

workflow:ProcessStage processStage = check fo->getProcessStages("usmf", "Onboarding", "ManagerApproval");
deleteProcessStages

Deletes a process stage.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
processTypestringYesThe process type key field.
namestringYesThe name key field.
headersDeleteProcessStagesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteProcessStages("usmf", "Onboarding", "ManagerApproval", headers = {ifMatch: eTag});
updateProcessStages

Updates a process stage.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
processTypestringYesThe process type key field.
namestringYesThe name key field.
payloadProcessStageYesThe request body.
headersUpdateProcessStagesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: ProcessStage|error

Sample code:

workflow:ProcessStage updated = check fo->updateProcessStages(
"usmf",
"Onboarding",
"ManagerApproval",
{sequenceNumber: 20},
headers = {ifMatch: eTag}
);

Rec Setup Bases

listRecSetupBases

Lists reconciliation setup bases.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListRecSetupBasesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: RecSetupBasesCollection|error

Sample code:

workflow:RecSetupBasesCollection result = check fo->listRecSetupBases(
queries = {filter: "ItemGroup eq 'FinishedGoods'"}
);
createRecSetupBases

Creates a reconciliation setup basis.

Parameters:

NameTypeRequiredDescription
payloadRecSetupBasisYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: RecSetupBasis|error

Sample code:

workflow:RecSetupBasis created = check fo->createRecSetupBases({
dataAreaId: "usmf",
itemId: "1000",
itemGroup: "FinishedGoods",
description: "Reconciliation setup basis for finished goods"
});
getRecSetupBases

Retrieves a reconciliation setup basis by key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
itemIdstringYesThe item id key field.
itemGroupstringYesThe item group key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetRecSetupBasesQueriesNoOData query parameters: $expand, $select.

Returns: RecSetupBasis|error

Sample code:

workflow:RecSetupBasis recSetupBasis = check fo->getRecSetupBases("usmf", "1000", "FinishedGoods");
deleteRecSetupBases

Deletes a reconciliation setup basis.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
itemIdstringYesThe item id key field.
itemGroupstringYesThe item group key field.
headersDeleteRecSetupBasesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteRecSetupBases("usmf", "1000", "FinishedGoods", headers = {ifMatch: eTag});
updateRecSetupBases

Updates a reconciliation setup basis.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
itemIdstringYesThe item id key field.
itemGroupstringYesThe item group key field.
payloadRecSetupBasisYesThe request body.
headersUpdateRecSetupBasesHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: RecSetupBasis|error

Sample code:

workflow:RecSetupBasis updated = check fo->updateRecSetupBases(
"usmf",
"1000",
"FinishedGoods",
{description: "Reconciliation setup basis for finished goods (revised)"},
headers = {ifMatch: eTag}
);

Workflows

listWorkflows

Lists workflow definitions.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListWorkflowsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: WorkflowsCollection|error

Sample code:

workflow:WorkflowsCollection result = check fo->listWorkflows(
queries = {filter: "Module eq 'PurchaseOrder'"}
);
createWorkflows

Creates a workflow definition.

Parameters:

NameTypeRequiredDescription
payloadWorkflowYesThe request body.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: Workflow|error

Sample code:

workflow:Workflow created = check fo->createWorkflows({
sequenceNumber: "PurchReqApproval-1",
name: "Purchase requisition approval",
associationType: "Company",
'type: "Definition",
dataArea: "usmf",
templateName: "PurchReqApprovalTemplate",
'module: "PurchaseOrder",
defaultConfiguration: "Yes",
categoryName: "Procurement"
});
getWorkflows

Retrieves a workflow definition by key.

Parameters:

NameTypeRequiredDescription
sequenceNumberstringYesThe sequence number key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetWorkflowsQueriesNoOData query parameters: $expand, $select.

Returns: Workflow|error

Sample code:

workflow:Workflow wf = check fo->getWorkflows("PurchReqApproval-1");
deleteWorkflows

Deletes a workflow definition.

Parameters:

NameTypeRequiredDescription
sequenceNumberstringYesThe sequence number key field.
headersDeleteWorkflowsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: error?

Sample code:

check fo->deleteWorkflows("PurchReqApproval-1", headers = {ifMatch: eTag});
updateWorkflows

Updates a workflow definition.

Parameters:

NameTypeRequiredDescription
sequenceNumberstringYesThe sequence number key field.
payloadWorkflowYesThe request body.
headersUpdateWorkflowsHeadersNoAdditional HTTP request headers. Include ifMatch with the entity's current ETag.

Returns: Workflow|error

Sample code:

workflow:Workflow updated = check fo->updateWorkflows(
"PurchReqApproval-1",
{defaultConfiguration: "No"},
headers = {ifMatch: eTag}
);