Skip to Content
User Experience Insights
Author's profile photo Resul Simsek

Assign cost(delivery etc) to a specific cost component

Hello Everyone,


In this blogpost , we will intend to analyze and evaluate some options how to post delivery(or similar case) cost to a specific cost component.   Same approach can be applied for any other cost postings which reqiired to be post a specfic component. But lets focus how to post some delivery cost cases to an own cost component.


We could face some scenario in projects such as transfer cost between plants(done by vendor or internal) or separate delivery cost in purhcasing scenario etc.  Below options can be used for these cases with considering design you have.


1-  When posting a goods receipt or invoice for a purchase order with usage of FRC1 or similar condition type:

When posting a goods receipt or invoice for a purchase order, all planned costs are assigned to the same cost component. The delivery costs (or freight costs) are not assigned to a separate cost component.

We can directly post such these postings by using FRC1 condition type to a specific component like   freight or transportation

in that case below approach needs to be applied.

  •   Create an origin group


  • Assign FRC origin group to FRC1  condition type like below. You can use other fields if they are necessary in your purpose.  Valuation variant must be blank.

  • Use GBB-VBR gl account in OKTZ  `freight`  cost component with using FRC  origin group.  Now they will flow to Freight  component.

Afterwards, the planned delivery cost for goods receipts and invoices will be assigned to the relevant cost component.

Please be aware that this solution only works for delivery cost which generate an own posting to a clearing account at the time of goods receipt. Thus, please check the condition type FRC1 in the purchase order: both indicators “Statistical” (KOMV-KSTAT) and “Accruals” (KOMV-KRUEK) have to be activated.

2 – Usage of MR22

If in your scenario there is no detail logistic preparation like in first option, then usage of MR22  can be evaluated. For example transportation cost between 2 plants initially can be posted to a cost center. But afterwards based on some rules you intend to distribute them over products directly and cost flows to transportation component.  This is more custom approach , can be used only if pocess can not be handled by logistic with some valid reasons.

When you execute transaction MR22 to post additional costs (debit/credit) related to a material, the
cost component split is updated according to the cost component split of the material standard price. But we want update the cost component split in a single cost component.

Lets check how to post MR22 values to a specific cost component by using std customizing.  This approach can be used in any other similar cases.

You can also write MR22 collective programs if it is necessary in your case.

  • First we need to create a reason for manual price difference posting and assign it to our origin group. In my example I used same origin group FRC. You can use different one if necessary.

  • Use GBB-VBR gl account in OKTZ  `freight or transportation`  cost component with using FRC  origin group.  Now any posting with FR reason on MR22 , will flow to our component we maintained directly.

3- Usage of   GET_DEFCCS  Badi

If our scenario is not suitable non of above cases,  we can consider usage  of GET_DEFCCS  Badi. It is more flexible but require enhancement implementation.

By using this BADI we can manipulate values in components at the time of material level cost posting. With considering conditions you have in your scenario,  you can write some calculation logic in order to determine value and post it to a specfic component at the time of real posting.


They can be used in some cases as well but it is being rarely used for some exception cases if something need to be done at the end of period  not in real time.  

Some general hints

  • GET_DEFCCS is being called after MR_ACCOUNT_ASSIGNMENT  enhancement.
  • For each execution of transaction MR22 you can call this BADI GET_DEFCCS and change the cost component split data at same time. It is more valid if you would like to post 2 different component in some logic. Otherwise  above mentioned option 2 can be used in standard without enhancement.


I intend to explain a general approach how to post a specific cost component especially in delivery scenario. But those ways can be used for other scenarios that required to be posted on a specific cost component.

Thank you

Resul Simsek

Kind regards

Assigned Tags

      1 Comment
      You must be Logged on to comment or reply to a post.
      Author's profile photo AKIF ANIL HAYDAROGLU

      Thank you for detailed information.