Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Goods Receipt Output Control

Former Member
0 Kudos

Dear experts,

I'm trying to extend the Inventory Management with my own output type. The goal is to output some output type after the standard one in goods receips log (transaction /nme23n --> Output --> Processing Log). I created the program processing routine. Then I created the new access sequence, entered the accesses and their field. Finally I defined the new procedure with created condition type. It ssems that my program is not called at all. What I am missing. The message type is active (transaction BD50).

P.S.

I created the Goods Receipts in MIGO and then I go to PO (me23n) and display the purchase order history. There I find the Material Ducment that was generated after Goods Receipt creation. And afterward I go into this Material Document and display the Processing Log. And I have to enhance this log with my own logic: call the custom program.

Thank you.

17 REPLIES 17

JL23
Active Contributor

Former Member
0 Kudos

Not really, this blog describes the way I write something in the log, but I need to start my own report via customizing.

Basically everything shall be done in the transaction NACE: Output types + Access sequences + Procedures + Condition records. So normally you enter the report + routine in Output type and this program shall be started during the Goods Receipt creation. BUT if I enter 2 steps in the Output types (see Screenshot) my program is called.

Best

Jelena
Active Contributor
0 Kudos

I'm still not very clear on what exactly are you trying to achieve but have you assigned the program to the output type? Have you checked in the debugger if it's executed?

Former Member
0 Kudos

Dear Jelena,

I have assigned the program to the output type, but it is not called. That is the problem.

Best

JL23
Active Contributor

you did not reply to the second part of Jelena's question: Have you debugged?

Also you should have used "reply" on Jelenas comment, you actually commented to my answer and Jelena is not informed about your response

Former Member
0 Kudos

Dear Jelena,

I have assigned the program to the output type, but it is not called. That is the problem. Concerning debugger, I am not quite sure, if you mean /h, I can try this method, but I don't know when this customizing is called.

Best

Former Member
0 Kudos

Hi Jürgen,

concerning debugging, I don't know the place where this customizing is called. Do you have any idea?

Best

Former Member
0 Kudos

Hi Jelena,

I found this program, where my routine shall be called:

RSNAST00: PROGRAMM_AUFRUFEN, but unfortunately it does not run into this code, I set the debugger in different places, where PROGRAMM_AUFRUFEN is called, but nothing happens. Do you have any Idea?

Best

JL23
Active Contributor
0 Kudos

I am not doing programming anymore, although I would have some ideas, but I am actually uncertain if it would be beneficial to explain this right now as I am still having difficulties to understand the situation beside of the fact that I do not understand at all that a programmer does not know about debugging (its like a blacksmith who does not know what a hammer is)

You said you want output "some output type after the standard one". Why would this need to be done with with the processing routine 2 of standard output type (lets make it WE03) instead of the usual processing routine which is assigned to the output type (lets call it ZZZZ) itself?

Also I do not understand what BD50 transaction has to do with your question, BD50 is about change pointers for ALE distribution had the message type here is the message type of an Idoc.

Try to shed some light into the whole scenario, best you post some screenshots to make us understand


Former Member
0 Kudos

Dear Jürgen,

found this program, where my routine (object type Z***) shall be called:

RSNAST00: PROGRAMM_AUFRUFEN, but unfortunately it does not run into this code, I set the debugger in different places, where PROGRAMM_AUFRUFEN is called, but nothing happens. Do you have any Idea?

Best

Former Member
0 Kudos

And some further information for understanding what I am doing:

Basically I need to create the new output type, that shall be triggered after I save the material document. I crated the object type, assigned the program and the form under Output Type --> Processing routines. I created the access sequence, maintained the accesses and fields. I created the procedure for ME0001 and created the new step with my output type. Then I maintained the conditions for my output type.

I hope it's getting clear.

Best

JL23
Active Contributor
0 Kudos

these are the normal steps, but usually the problems are in the details.

Why is this second output type not found? Have you seen this wiki which is supposed to help to determine the root cause: https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=88113280

Former Member
0 Kudos

Okey, I will check it, thank you.

Jelena
Active Contributor
0 Kudos

Google "output debugging site:sap.com" or "Smartform debugging site:sap.com", you should find many SCN posts that explain how to debug the output.

Output runs in its own process, so we can't just set a breakpoint and expect it to be triggered when we run a transaction. On this note, I'm not sure how exactly a conclusion has been made that "the program is not called".

Access sequence, conditions, all of this is irrelevant to this issue. I feel there is still quite a bit you can do to help yourself (including maybe reaching to a more experienced teammate?). But if an answer is expected from SCN then I'd suggest to post all the relevant information: program assignment in the configuration, output processing log, the relevant ABAP code (at least how he routine start looks) and such.

Former Member
0 Kudos

matt
Active Contributor
0 Kudos

What are you intending to show by this image?

Former Member
0 Kudos

Hi Matthew,

I'm trying to show, that if I enter another routine in the sequence, than it will be called. But if I create another object type and enter my routine there, it is not called.

Best