This topic includes additional information about updating BP record V2.
Simple Object Access Protocol (SOAP)
To send SOAP services as XML, ensure that you follow the general rules of XML:
- All tag data (not CDATA) needs to be escaped for < > & "
- Escaping must be a part of the client code which generates the web service call
Note: Those using SOAPUI to make a call must do it manually.
Unifier supports MTOM base64 encoded files in our Unifier Web Service SOAP platform for:
- createCompleteBPRecord
- updateCompleteBPRecord
- addCompleteBPRecord
- getCompleteBPRecord
Shell and Company Levels
If the Shell number is null then the record will be assumed for company level record.
The step involved in sending a record (Send To) is pre-assigned.
Options
- WFCurrentStepName
Value of this tag identifies the current step of the record. This is to ensure that web service call is called for correct step with correct action.
- WFActionName
Value of this tag determines the action that should be taken. This action name will be validated against the WFCurrentStepName
WFActionName
If the option WFActionName tag is empty, then the system updates the record, only. WFCurrentStepName in this case is not validated.
If the option WFActionName tag has a value, then the system pushes workflow to the next step, based on the value of WFActionName tag. All form level validations will be triggered before pushing workflow to the next step. In this scenario WFCurrentStepName will be validated to make sure that the step is valid and action is valid. The option WFActionName tag will be ignored for non-workflow business processes.
Validations while processing WFCurrentStepName and WFActionName tags
- If WFActionName tag is empty, then do not validate WFCurrentStepName
- If WFActionName tag is not empty, then validate WFCurrentStepName
WFCurrentStepName
The record is still on the step identified by WFCurrentStepName. If it is not, the system generates an error.
Step identified by WFCurrentStepName value has "Enable Step for Integration" option set to "Yes". If it is not, the system generates an error.
Validate WFActionName is valid action that can be taken from step identified by the value of WFCurrentStepName.
After going through all validations rules, the system moves the record to next step. The Creator, who has been selected on the Admin > BP Setup > Workflow (node) > Auto Creation (tab) > Creator, is the person who takes action on the step.
It is possible that someone would have accepted the task on step identified by the value of WFCurrentStepName. (This can happen because "Assignees" option for this step under BP Setup is not disabled). There are three possible scenarios under this condition:
- No one accepted the task: In this scenario system will automatically accepts the task, update record and line items and move record to next step. System will remove task from all other users list.
- Someone accepted the task: In this scenario system will update record and move it to next step and will remove task from other users list including the use who accepted the task.
- Someone accepted the task and move workflow to next step. System will generate an error message as the task is already accepted and WF is moved out of that step
LineItemIdentifier
There are two scenarios for this option:
- LineItemIdentifier value is empty: In this scenario system will add all line items. <_delete_bp_lineitems> tag will be ignored.
- LineItemIdentifier value is not empty: In this scenario value provided as part of LineItemIdentifier should be a tag under _bp_lineitems. If not system will error out.
If LineItemIdentifier value is an element under _bp_lineitems, then the system will try to query up a line item based on the value provided under this element.
If the line is found then it will be updated.
If two lines are found, then the system generates an error (duplicate rows).
If the line is not found, then it will be added.
Notes:
- The mentioned behavior mentioned above is applicable to all lines on all tabs.
- The system will not update/remove/add line items of Cost type of Business Process records that have reached terminal status (not just end step), using this new service.
The "LineItemIdentifier" option is ignored for following type of business processes:
- Simple: Document with Detail form
- Text
WFActionName and WFCurrentStepName
This option is ignored for non-workflow Business Processes.
Import the line items for General Spends and Payment Applications
The following XML tag <_refnum> </refnum> should be added under BP line item tag <_bp_lineitem> </bp_lineitem> to support the ability to import the line items for General Spends and Payment Applications.
This service can be used to add lines to Payment Applications and General Spends type of business process. When adding lines to Payment Applications type of business process, existing lines if any will be removed and new lines will be added that are provided as part of the service call. For General spends line will be appended like any other business process.
Note: updateBPRecordv2 cannot be used to update existing line items for Payment Applications type of business process.
Updating BP Record V2 for Document type BP with Folder Structure
The Web Service call supports the adding of line items to a specific folder to an existing Document type BP record.
The Update BP Record V2 is applicable to Base Commit and Change Commit of Summary Payment Application type business processes.
The Update BP Record V2 is partially supported for Payment Application business processes of Summary Payment Application type. Use this service to add standard tab line items to a payment record only when the record does not have any standard tab line items created, yet (in such case, the same service can also be used to optionally progress the workflow). Alternately, this service can be used only to progress the workflow on a record.
This service is not available to modify or delete standard tab line items.
Payment BP (both the classic and summary payment) line items belonging to tabs other than the standard tab can be added/modified/deleted by using: updatebprecordv2 call.
Behavior Specific to Summary Payment Application SOV Type BPs
Note: The information is applicable to Base Commit and Change Commit of Summary Payment Application SOV Type BPs.
For more details about XML tags, see Create and Add Methods in the Create BP Record (Additional Information) section.
Update Methods (Update BP Record V2)
The Cost Allocation using the Update BP Record V2 method is necessary when Summary Line Item is added at the creation step and Actual Cost Allocation is added in the subsequent step.
When you need to add Cost Allocation to an existing Line Item, the existing “LineItemIdentifier” tag can hold the information of the Line Item that needs to be updated with the Cost Allocation
The LineItemIdentifier is the key tag for identifying the Line Item that needs to be updated.
You can add new Summary Line Items and Costed Line Items.
If the XML template has the Summary Line Item fields, along with the Cost Allocation, then the Summary Line Items need to be updated.
Note: In this case, the LineItemIdentifier tag is the key.
For modifying Line Items, either by adding new Costed Line Items or updating existing Costed Line Items for Base Commit and Change Commit Business Process records, the following rules are applied:
- CBS Code forms the identifier for identifying the Costed Line Items that need to be updated in Base Commit BPs.
- For a Base Commit BP record:
- If a CBS Code that is specified in the _cost_allocation block does not exist in the Line Item, then this will be treated as a new Costed Line Item for the specified Line Item.
- If the CBS Code specified in the _cost_allocation block already exists, then this will be treated as an update and the Costed Line Item for the specified Line Item will be updated.
- If there are multiple Cost Allocation blocks with the same CBS Codes, then update will not take place and results in a duplicate CBS Code error.
Note: The above rule applies to updating the existing Line Items in the Change Commit BP, also.
New modifications to Line Items existing in the SOV can be done by specifying the sovlinum. For modifying the Costed Line Items in the Summary Line Items, the combination of sovlinum and CBS Code will be used.
Since the Short Description already exists for the Line Items, this is as an Optional field.
The Costed Line Items that need to be updated will be identified by the Cost Code/ bItemId.
All operations that are currently possible with the updateBPRecordV2 call will be applicable here, aloso.
Example
Workflow progress, deletion of line items etc.
Validation
If the input XML used for updating Line Items has only Cost Allocation details, along with the Line Item reference, then the Line Items update with the Cost Allocation will go through without any errors.
All validations for the required fields in the Summary level and the Cost Allocation level will be applicable.
All system level validations existing for the above mentioned BPs will be applicable.
Example
Costed amount = Line item amount at a given step
Existing validations for update BP record V2 will be applicable.
Data Elements in Line Items
If the following Data Elements are present in the Line Items, they will not be updated during UpdateRecordV2 call.
bitemid
budgetid
sovitemid
uuu_cm0_picker
xid
ds_code
fsm_lineitem_id
asm_lineitem_id
uuu_lat
uuu_long
uuu_company_account_name
uuu_company_account_code
uuu_company_acc_codepicker
uuu_activity_picker
uuu_asset_picker
ref_bpo_lineitem
ref_bpo
ref_rfb
refid
uuu_sovlinum
otherCompanyID
uuu_costcode_picker
scheduled_value
uuu_asset_cum_depreciation
uuu_asset_curr_period_dep
uuu_asset_net_book_value
uuu_unit_price
currencyid
due_date
uuu_asset_calc_as_of_date
uuu_from_date
uuu_issue_date
uuu_last_update_date
uuu_rfb_due_date
uuu_to_date
uuu_week_picker
uuu_datasource
uuu_depreciation_mtd
uuu_line_item_status
row_id
uuu_bid_count
uuu_bidders_count
uuu_planning_item_picker
uuu_proj_picker
record_no
uuu_resc_picker
uuu_role_picker
uuu_commit_short_desc
end_date
uuu_creation_date
uuu_asset_name
uuu_commit_breakdown
uuu_asset_code
uuu_asset_navigation_code
uuu_timescale_units
creator_id
wpid
uuu_cost_costattribute
uuu_cost_external_refid
uuu_cost_status
uuu_cost_cost_type
uuu_cost_description
uuu_cost_item
uuu_cost_owner
uuu_cost_code
uuu_dm_create_date
uuu_file_create_date
uuu_file_issue_date
uuu_dm_percent_complete
uuu_file_size
uuu_file_version
uuu_dm_description
uuu_dm_node_path
uuu_dm_node_name
uuu_file_revision_no
uuu_file_title
uuu_dm_create_by
uuu_file_create_by
uuu_fund_fundcategory
uuu_fund_long_desc
uuu_fund_description
uuu_fund_fundname
uuu_fund_code
uuu_description
uuu_resc_nwd_type
uuu_resc_interest
uuu_resc_proficiency
uuu_resc_skill
uuu_role_status
uuu_role_name
uuu_resc_capacity
uuu_user_address
uuu_user_city
uuu_user_country
uuu_user_email
uuu_user_fax
uuu_user_firstname
uuu_user_homephone
uuu_user_lastname
uuu_user_mobilephone
uuu_user_pager
uuu_user_state
uuu_user_timezone
uuu_user_title
uuu_user_workphone
uuu_user_zip
uuu_resc_status
uuu_resc_code
uuu_resc_name
uuu_early_finish
uuu_early_start,uuu_finish
uuu_late_finish
uuu_late_start
uuu_start
uuu_act_pct_complete
uuu_activity_work_hrs
uuu_duration
uuu_fixed_cost
uuu_float
uuu_labor_cost
uuu_non_labor_cost
uuu_total_cost
uuu_activity_id
uuu_flag_complete
uuu_flag_milestone
uuu_activity_resources
uuu_dependency_type
uuu_activity_name
uuu_outline_code
uuu_cost_li_type