For the purpose of saving time, this article tries to collect basic technical details that ABAPer may use when dealing with the parked documents.
Q: What is the parked document and difference compared with the Hold document
A:
SAP help provides the
official definition. Please check
this article with screenshots and a more friendly explanation.
Q: Where is the Parked document been stored?
A: Parked documents are stored in
VBKPF and VBSEG* tables; VBSEGS is a particular case of parked documents on G/L accounts. A parked document will be stored in VBKPF and BKPF (with document status
BSTAT equal to 'V'). It will be stored in one or numerous VBSEG* tables. It will come to BSEG after the posting and consequently be deleted from VBKPF and VBSEG*.
- VBSEG Document Parking Document Segment - General Structure
- VBSEGA Document Segment for Document Parking - Asset Database
- VBSEGD Document Segment for Customer Document Parking
- VBSEGK Document Segment for Vendor Document Parking
- VBSEGS Document Segment for Document Parking - G/L Account Database
Q: Function modules to create/change/post parked documents?
Some discussion about dump when change the parked document using 'PP_CHANGE_DOCUMENT_ENJ' at
this. Btw,
PRELIMINARY_POSTING_POST_ALL is working for me without any issue with posting.
You may aware that updating by 'PRELIMINARY_POSTING_DOC_WRITE' will left no changelog accordingly in the system. Maybe this is system design cause changes don't matter a lot as a Parked document has not been posted yet. Please correct me if wrong : )
Besides,
Document parking with accounting BAPIs could only be achieved using a custom enhancement (BTE or BAdI implementation). With note 2092366 SAP now officially supports the functionality of parking documents using the accounting BAPI, but only under the restrictions listed in notes 2092366 and 2021422 With this scenario, no manipulation of TCODE is allowed and only for object type BKPFF. (Check this
blog for more)
Q: How to create/update the Notes of parked document
A: using Function module 'CREATE_TEXT' and
'SAVE_TEXT' with text object 'DOC_ITEM' and text id '0001'. Text name = company code+document number+fiscal year+item no.
Tips: if want to check which field at which table has been updated during parked document changing/posting for one specific document, one easy way could be to search at CDPOS like below: