Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
NishuBajpai
Associate
Associate
6,413
In this blog I would like to share my knowledge and learning for triggering IDOCs for Sales Order using BRF+ OPD concept.

The document will focus on following points

  1. Configuring Output type

  2. Configuring Output type for Sales Order in OPD

  3. Required Custom Code Changes

  4. Mandatory system configuration

  5. Debugging hints


Configuration steps for creating Z Output type

SPRO->Cross-Application Components->Output Control

  1. Define Output Type


2.Assign Output Channels



Configuration steps for Output Type via transaction code OPD.

 



    1. Run transaction OPD, Select Determination Step as Output Type





2.    Determination Step: Receiver


3.   Determination Step: Channel


4.   Determination step: Output Relevance


Output Relevance is based on the business requirement, but entry must exist in this step.

If there is no specific business requirement, we can create it with generic condition like Overall Header = C (as mentioned in above screenshot).

Output type is attached to Sales Order once above steps are complete.

To enable new output management for sales order we need to activate it using following SPRO steps

SPRO->Cross-Application Components->Output Control->Manage Application Object Type Activation


 

Mark status as Application Active for Sales Document.

Custom Code Changes

At the time of defining Output Type, we can add a Z callback class. Create a Class by coyping standard class CL_SD_SLS_OUTPUT and add same under Z Output Type


In case of IDOC we need to modify method GET_LEGACY_DATA of class ZCL_CL_SD_SLS_OUTPUT


ET_LEGACY_DATA should be populated with Z output type.

 

Mandatory System Configuration

  1. Customizing for SOMU



  • Check if the Content Repository "SOMU_DB" exists in transaction OAC0.
    The recommendation is the following:
    Description: Output Management DB Storage
    Storage type: SAP System Database
    Storage subtype: Normal
    Version: 0047
    Content table: SFORM_A_STORAGE

  • Check if the Content Repository "SOMU_DB" is assigned to Category "SOMU" in transaction OACT.


Refer Note 2279725 for more details.

2. Open transaction SBGRFCCONF to check if supervisor destination and Inbound destination is defined or not.



 

Supervisor destination should exist in SM59.

For detailed steps follow Note 2292571.

 

Once above steps are followed, it will trigger IDOC for sales order.


Debugging Hints

 

Following are the debugging points which can be used if trigger output does not work for any reason

  1. First and easiest: Breakpoint at constructor in call back class.



        2. Breakpoint at function module APOC_OR_ISSUE_OUTPUT. This will trigger in update task so update breakpoint should be activated first.

 

I have tried covering all the issues which I have encountered during my Research. Hope it is helpful for you. Happy Learning!!

 

 
3 Comments
sumit_joshi2
Advisor
Advisor
0 Kudos
Thanks Nishu, for sharing the knowledge about this O/P type config and dev around it.
campanate
Discoverer
0 Kudos

Do you know how to add an iDoc with an error?
Already tried changing the status of the output control and also raising the exception inside the function that creates the content of the iDoc.
When I change the status, it is ignored and the iDoc is created with successful status.
When I raise the excepetion, the iDoc is not generated and the status of the APOC line does not change (it is kept with TO BE OUTPUT).

I tried to debug some APOC classes, but nothing seems to work.
I need to have the iDoc generated but with error status.

0 Kudos

Good blog.