Search The SAP Consultant

Saturday, November 20, 2010

Dual control on GL postings

On this post I would like to share a simple solution that would enable the companies to implement dual control on journal postings. In other words this solution would make sure that two users are involved on each journal posting where one person parks the document and another one posts it. Unlike the traditional authorization based solutions, none of the users are restricted at the transaction code level. This is how the solution works.

1. First user parks the document using FB50. If the user attempts to post, system throws an error message.
2. Second user posts the document using FBV0. If the second user attempts to post his own-parked document, system throws an error message.

Now lets see how this solution is implemented.

Step 1

Create a validation rule at complete document level with userexit.


Step 2

Implement the following logic in the validation userexit.


FORM us007 USING b_result.

* Enhancement by Shathees Loganathan.

select single * from VBKPF where BELNR = BKPF-BELNR and BUKRS= BKPF-BUKRS and BSTAT = 'V'.

if sy-subrc = 0.

if VBKPF-USNAM = SYST-UNAME.

Message e019(ZLF01).

b_result = B_FALSE.

endif.

else.

Message e018(ZLF01).

b_result = B_FALSE.

endif.

ENDFORM.

Now lets see how would this affect the journal entries.

Step 1

First user parks the document using FB50. If the user tries to post the document, the following error message is shown.

First user parks the document.

Second user posts the document using FBV0. If the second user tries to post a document parked by him, the following message is shown.

If the second user posts a document parked by another user, system allows the document to be posted.

This solution could be further enhanced. For example we could allow certain managers to post the document directly through an exception process or we can implement this dual control to certain GL accounts or document types.

Hope this is useful. See you all next time.

Wednesday, November 10, 2010

Dispute management (Chargeback)

Today I’m going to talk about the dispute management module delivered by SAP under financial supply chain management solution. Typically when the dispute management module is not implemented, users would store key information related to disputes or chargeback on the accounting document line item text on the residual items (Or some where on the accounting document).

When the dispute management module is implemented, one of the key requirements would be to copy this information to the Notes on dispute cases. Using the following solution, this can be easily implemented.

Step 1

Implement the BADI ZFDM_AR_DEF_NOTE.

Step 2

Implement the code shown below in the method GET_DEFAULT_NOTE

Data : wa_note type TLINE,

wa_bseg type bseg.

select single * from bseg into wa_bseg where belnr = I_DISPUTE_DATA-BELNR_AKT and GJAHR = I_DISPUTE_DATA-GJAHR_AKT

and BUZEI = I_DISPUTE_DATA-BUZEI_AKT.

if sy-subrc = 0.

append initial line to c_note.

loop at c_note into wa_note.

wa_note-TDLINE = wa_bseg-SGTXT.

MODIFY c_note INDEX sy-tabix FROM wa_note

TRANSPORTING TDLINE.

endloop.

endif.

endmethod.

Now when the disputes are created using the transaction code FDM_AUTO_CREATE, Line items text would automatically be added to the dispute notes.

Hope this helps. See you next time.

Tuesday, July 20, 2010

Payment approval on F110

Today I’m going to talk about a solution that I have implemented for one of my clients. The requirement was to implement an approval process for the vendor payments. Basically my client wanted to review and approve the out going payments generated by SAP automatic payment program. For simplicity I have broken down the steps below.

Step 1

Implement the business transaction event 1120. Please refer to my post related to BTE for detailed information.

Step 2

Within the function module that have been created for BTE 1120, Implement the following logic.

As you can see from the above screen print, I have extracted the payment ID and the date from the accounting document header text.

I have created a custom tableZPAAPPROVAL to facilitate a simple approval process. But this can be enhanced based on the approval requirements.

Now lets see how this solution works. When a payment run is executed, system allows the payment proposal to be created but throws an error message when the user tries to execute the payment run.

Manager can approve the payment using the approval logic implemented. In my case, manager approves it using the table ZPAAPPROVAL. Once the approval is obtained, system allows the payment to be made.

I hope this post is useful to you. Please feel free to leave your comments.

Wednesday, April 21, 2010

SAP’s SME Solutions – A Guide to the Product Portfolio

Dear readers,

I have come across an interesting post regarding various products offered by SAP to cater to various market needs. I thought it would be pretty informative to a potential decision maker.


Hope the above would be useful to any potential SAP buyer.

See you next time.