Search The SAP Consultant

Friday, December 30, 2011

Solution for outsourced checks

On this post I would like to talk about a solution that could be implemented to facilitate outsourced check printing. This solution assumes that the bank prints the check using the check number generated by SAP and transmitted to bank using an XML file.  Bank communication management is used to facilitate the internal approvals. But the detailed configuration steps needed for BCM would be discussed in a future post.

Step 1
Create a payment method for outsourced check using payment medium workbench.


Step 2
Map the Payment medium format to DME engine.


Step 3
Crete the DME tree for XML format.

Step 4
Create a check lot number range and assign the payment method to the lot as shown below.


This concludes the necessary configuration steps. (BCM configuration would be discussed later)
Now let’s see how the payment process for an outsourced check would be done using this setup.

Step 1
Execute the automatic payment run.

Step 2
Approve the payment using BCM. I will write about BCM in a future post.

Once the payment is approved, SAP would generate the XML file using DME. This file would contain the check number and other payment information to be sent to bank.


This would also update the check registry in SAP. Subsequent electronic bank statements could be used to update cleared checks.

Hope this helps you guys. See you next time.

Sunday, May 01, 2011

Mix costing on SAP

On this post I would like to have a look at the mix costing functionality offered by SAP. This functionality could be used to calculate the average standard cost for a material that is procured/produced using multiple sources. Lets look at it step by step.

Step 1 – Define Quantity Structure (Configuration)

Define a quantity structure type as stated below.

Menu path on SPRO - Controlling → Product Cost Controlling → Product Cost Planning → Selected Functions in Material Costing → Define Quantity Structure Types


Step 2 - Define Costing Versions (Configuration)

Assign the quantity structure type to the costing version.

Menu path on SPRO - Controlling → Product Cost Controlling → Product Cost Planning → Selected Functions in Material Costing → Define Costing Versions


Step 3 - Maintain Procurement Alternatives for the material (Master data)

Maintain the procurement alternatives for the selected material using the transaction code CK91N. These would later be used to maintain the mixing ratios.


Step 4 – Maintain the mixing ratio for the selected material (Master data)

Maintain the mixing ratio for the material using the transaction code CK94.


Step 5 – Execute the costing run

Execute the costing run using either CK11N or CK40N. Now the costing run would calculate the standard cost based on mix ratio.


Hope this post helps you guys. Please don't hesitate to drop your comments.

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.


Message e019(ZLF01).

b_result = B_FALSE.



Message e018(ZLF01).

b_result = B_FALSE.



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


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





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.

Thursday, November 26, 2009


Hi Friends

Would really appreciate if you can post your queries on the forum rather than the comment section of this blog. This will allow other users also to give their input. And I will try to respond to all the queries as soon as possible.

Once again, Thank you very much for all your support.