I think this issue is not specific to vendor creation but to many 'approval' scenarios. The question is: How can you persist a particular object (ie. vendor, SD partner, FI-CA document, etc.) before it has been approved? If it is persisted it will begin to take effect in the system even though it has not yet been approved.
The problem has two possible solutions:
* You could develop various custom tables, screens, etc to persist the data in 'temporary' custom tables and then make the workflow update the 'actual' tables once the object has been approved. In my experience, this solution creates more problems that it solves. The overhead of re-creating the tables and enforcing business rules in your custom screens is a nightmare. This approach is seldom the best way to go.
* What I would do is implement a 'status' based approach. Add a field (if one doesn't exist) called Status or perhaps ApprovalStatus. This would be set to 'Pending' on initial creation via the use of an appropriate Exit or BADI. Again, using various enhancement techniques (ie. Exits), restrict the use of the Vendor to DISPLAY ONLY when the Object is in 'Pending' Status. Once it has been approved, update the status of the Object to 'Approved' and ensure that all restrictions are lifted.
Dig Deeper on SAP workflow development
Related Q&A from Alon Raskin
Find out how to configure clients so that the same version of an SAP workflow item is used when the workflow is triggered in separate clients. Continue Reading
An SAP user has created a user decision step in an SAP workflow item and wants to know how an end user can send an attachment to other users. Continue Reading
A SearchSAP.com reader wants to know how to hide the forward button in an SAP Business Workplace toolbar. Continue Reading