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: 

ME23N Insert Screen

Former Member
0 Kudos

Hi,

I need to insert a new screen (tab) in ME23N (Item).

Can I use the badi ME_GUI_PO_CUST for that ? how can i use this badi for create a new screen in this transaction please?

Thanks for your reply.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

What difference they are between CI_EKKODB and CI_EKPDB?

And what i need to implement in this include. I just need a tab with 1 title and in this tab 1 filed PS_POSID.

Thanks .

10 REPLIES 10

asik_shameem
Active Contributor
0 Kudos

Hi

You can easily acheive this by using enhancement MM06E005.

Screen exit(Item): SAPLXM06 u2013 0111

Use the following exits to handle data between screen and table.

EXIT_SAPMM06E_018 - Custom Screen(Item) to table EKPO

EXIT_SAPMM06E_016 - Table EKPO to Custom Screen(Item)

Former Member
0 Kudos

Thanks a lot for your reply.I test the implementation I have never do that.

I need to impelement this 2 user exits?

EXIT_SAPMM06E_016 - Table EKPO to Custom Screen(Item).

EXIT_SAPMM06E_018 - Custom Screen(Item) to table EKPO

Former Member
0 Kudos

What difference they are between CI_EKKODB and CI_EKPDB?

And what i need to implement in this include. I just need a tab with 1 title and in this tab 1 filed PS_POSID.

Thanks .

0 Kudos

Hi

Let's consider extra field is a Die Number(in Item Level)

1) First Append fields in EKPO by double clicking on the existing structure CI_EKPODB.

2) Create screen elements (SE51) using dictionary fields in EKPO which were created in the previous step in the screen exit SAPLXM06 u2013 0111.

3) To save the enhanced field values, Go to PAI of screen SAPLXM06 u2013 0111 and export the values to memory as below.

4) SET PARAMETER ID 'DIENO' FIELD ekpo-zzdieno.

5) In the user exit EXIT_SAPMM06E_018, get the values from memory as below and store it in extended structure.

6) GET PARAMETER ID u2018DIENOu2019 FIELD e_ci_ekpo-zzdieno.

7) Now values will be updated in the table upon saving.

8) For displaying the data from table to screen, Go to the user exit EXIT_SAPMM06E_016, import the value to memory as below.

9) SET PARAMETER ID u2018ODIENOu2019 FIELD i_ekpo-zzdieno.

10) Go to PBO of screen SAPLXM06 u2013 0111, and get the value form memory as below.

11) GET PARAMETER ID 'ODIENO' FIELD ekpo-zzdieno.

If you have any clarification, revert back.

Former Member
0 Kudos

1) First Append fields in EKPO by double clicking on the existing structure CI_EKPODB.

It's ok i have create my field to the tab : PS_POSID.

2) Create screen elements (SE51) using dictionary fields in EKPO which were created in the previous step in the screen exit SAPLXM06 u2013 0111.

I have create the screen : SAPLXM06 u2013 0111

I have insert a input field for PS_POSID ( with referece : search help : COBL_EX_PRPM.

I have do the all next step. But I have activate the screen but he don't show me the screen?

When i activate the screen in se51 it should be ok?

Former Member
0 Kudos

when i launch the transaction they are a dump and error DIENO is unknow.

I think he don't pass to my screen.

Former Member
0 Kudos

I think is because i have not implemented ME_GUI_PO_CUST.

Can you help me with this implementation please?

I don't know what method use with the element i have create before.

Former Member
0 Kudos

Hi,

I have try to implement the badi ME_GUI_PO_CUST with the method : SUBSCRIBE but nothing appear in item for transaction ME23N.

I use this code :


method IF_EX_ME_GUI_PO_CUST~SUBSCRIBE.
  *BREAK-POINT.
  DATA: ls_subscriber LIKE LINE OF re_subscribers.

  CHECK im_application = 'PO'.
CHECK im_element = 'ITEM'.

CLEAR re_subscribers[].

ls_subscriber-name = screen.
ls_subscriber-dynpro = '0111'.
ls_subscriber-program = 'SAPLXM06'.
ls_subscriber-struct_name = 'MEPO_BADI_STRUCT'.
ls_subscriber-label = 'test'.

APPEND ls_subscriber TO re_subscribers.

endmethod.

thanks.

Edited by: Spawn rad on Sep 16, 2008 9:56 AM

Former Member
0 Kudos

I have found the solution but he don't save the value that i assign .

Any Idea?

I have use

Include ZXM06U41 (user exit)

SET PARAMETER ID 'PRO' FIELD i_ci_ekpo-ZZPS_POSID.

Include ZXM06U40 (user exit)

GET PARAMETER ID 'PRO' FIELD e_ci_ekpo-ZZPS_POSID.

In screen painter :

PROCESS BEFORE OUTPUT :

module ZSTATUS_0111 output.

GET PARAMETER ID 'PRO' FIELD ekpo-ZZPS_POSID.

endmodule. " ZSTATUS_0111 OUTPUT

PROCESS AFTER INPUT :

module ZUSER_COMMAND_0111 input.

SET PARAMETER ID 'PRO' FIELD ekpo-ZZPS_POSID.

endmodule. " ZUSER_COMMAND_0111 INPUT

0 Kudos

Hi Spawn,

whatever you have done is correct except the memory ID.

You are using same memory ID for both. Change that as below.

In Exits:

Include ZXM06U41 (user exit) - From EKPO to Screen
SET PARAMETER ID 'IPRO' FIELD i_ci_ekpo-ZZPS_POSID. " IPRO Here

Include ZXM06U40 (user exit) - From Screen To EKPO
GET PARAMETER ID 'OPRO' FIELD e_ci_ekpo-ZZPS_POSID. " OPRO Here

In screen painter :

PROCESS BEFORE OUTPUT :
module ZSTATUS_0111 output.
GET PARAMETER ID 'IPRO' FIELD ekpo-ZZPS_POSID. " IPRO Here
endmodule. " ZSTATUS_0111 OUTPUT

PROCESS AFTER INPUT :
module ZUSER_COMMAND_0111 input.
SET PARAMETER ID 'OPRO' FIELD ekpo-ZZPS_POSID.  " OPRO Here
endmodule. " ZUSER_COMMAND_0111 INPUT