INTERNET APPLICATION DEVELOPMENT
MID MARKET ERP DEVELOPMENT
by Joe Zhou
This project began out of necessity for the sales team to initialize an opportunity in Sage CRM and automatically promote this opportunity to Intacct once the opportunity becomes a project. To create a project in Intacct, the sales team begins the workflow by initializing the opportunity in Sage CRM.
During the development phase we discovered that when we created a project directly in Intacct, without creating a corresponding opportunity in Sage CRM, the workflow broke down. So, I created a Smart Rule, referenced in example 3 from my recent blog post. This Smart Rule warns the user about the broken workflow before he or she attempts to create a project. However, when the integration code hits the Smart Rule, an error returned noting a project cannot be created within the program due to this Smart Rule.
My research found two ways to bypass the warning triggered by the Smart Rule:
1. Create a dedicated user account for web service calls only and add logic to validate if the user is present in the condition of the Smart Rule. This does not trigger the Smart Rule if the dedicated user account is detected. Then, the web service call goes through without warning.
Type: Warning
Events: Add
Condition: {!CURRENTUSER.LOGINID!} == "platform"
2. Use a flag in the XML call, which disables the validation rule. However, according to Intacct API documentation, the flag method only is available within the create_sotransaction method. Therefore, this process is truly not an option that can be applied to the project object.
I look forward to sharing with you these Intacct circumstances so that you may be aware of these challenges. My hope is this attribute is available in the future for customers. In the meantime, if you have a work-around to this issue, please leave your comments here.