Approved Workflow using code.
Below is the code to approve workflow thru code for any perticular Expense Order, same code can be use for SO, PO and many more.
static void ASCApprovedExpWorkflow_ex(Args _args)
{ TRVExpTable trvExpTable;WorkflowWorkItemTable workflowWorkItemTable;WorkFlowTrackingStatusTable workflowTrackingStatusTable;trvExpTrans trvexpTrans;;ttsbegin;select forupdate trvExpTable where trvExpTable.ExpNumber == ExpId && trvExpTable.dataAreaId == COMPANYID
{
trvExpTable.ApprovalStatus = TrvAppStatus::Approved; trvExpTable.update(); ttsbegin; while select forupdate trvExpTrans where trvExpTrans.ExpNumber == trvExpTable.ExpNumber && trvExpTrans.dataAreaId == COMPANYID
{
trvExpTrans.ApprovalStatus = TrvAppStatus::Approved; trvExpTrans.update(); } ttscommit; ttsbegin;
while select forupdate workflowTrackingStatusTable where workflowTrackingStatusTable.ContextRecId == trvExpTable.RecId && workflowTrackingStatusTable.ContextTableId == trvExpTable.TableId
&& workflowTrackingStatusTable.dataAreaId == COMPANYID
{ workflowTrackingStatusTable.TrackingStatus = WorkflowTrackingStatus::Completed; workflowTrackingStatusTable.update(); ttsbegin; while select forupdate workflowWorkItemTable where workflowWorkItemTable.RefRecId == workflowTrackingStatusTable.ContextRecId && workflowWorkItemTable.RefTableId == workflowTrackingStatusTable.ContextTableId && workflowWorkItemTable.dataAreaId == COMPANYID
{ workflowWorkItemTable.Status = WorkflowWorkItemStatus::Completed; workflowWorkItemTable.update(); } ttscommit; }
ttscommit;}
ttscommit;}