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: 

How is these PSIS_GEN_EBAN_NP and PSIS_GEN_EBAN_PR structure get created?

former_member282467
Discoverer

Hi,

I have added several custom fields in EBAN table, then requirement changed, I need to remove couple of my custom fields from EBAN.  I was able to removed from EBAN table, but when I tried to remove the Data Element for those fields, it said it was in used by these structures...

PSIS_GEN_EBAN_NP and

PSIS_GEN_EBAN_PR 

The short description for these structure said- "Generated structure for LDB PSJ.  Do not modify manually."

I have looked at the attributes from these structures, they are created/changed by one of my users.   Unforturnately, that user doesn't remember what she did, she was just testing some T-codes and just messing around with the system (as we are very new to SAP).  

I am thinking of may be she generated some reports????  It automatically generate those structures?   Can anyone give me some pointer as to how these structures get generated and how to get rid of them or re-generated again to reflect the "correct" structure?

Any help would be appreciated.  Thanks

SW

1 ACCEPTED SOLUTION

former_member282467
Discoverer

We got it resolved... hopefully this will help someone down the road.

From one of our developer (Krishna Adabala)...

Execution of the PSJ LDB from any transaction or reports will create a few PSIS_GEN_* structures.  During the creation of these SAP is generating some reports also.  These can be seen in the table PSJGNREP table.

Once a structure is generated, looks like it can get re-generated if there is change in the number of fields of the base table structure (SAP checks are happening based on the number of fields also).  For example here PSIS_GEN_EBAN_PR and PSIS_GEN_EBAN_NP are created based on the EBAN structure.  Even though the data element of the fields in EBAN is changed, the number of fields in the EBAN didn't changed from the time when PSIS_GEN_EBAN_PR and PSIS_GEN_EBAN_NP initially were created.  So these structure didn't get updated with the new data elements as the number of fields in EBAN remained the same.

Now just added a dummy field in the custom include of EBAN and execute the PSJ  LDB and then removed the dummy field.  Now the PSIS_GEN_EBAN_PR and PSIS_GEN_EBAN_NP have the latest data element used.

Re-generation of PSIS_GEN_* structures:  The generation of these structures happens whe LDB PSJ is executed from any t-codes or reports.  For example RM06EKPS used LDB PSJ and is associated with t-codes CNB2, ME2J and ME3J.  So when any of these t-code is executed, the LDB PSJ is used to fetch the data.  In the LDB PSJ, these is the code for generation of these PSIS_GEN_* structures. Similarly, if you exectue the LDB PSJ in SE36 and input some values in selection screen and run it, the structures are generated (first time) / re-generated (in case of any changes in the structures).  The entries are created in the PSJGNREP table. 

4 REPLIES 4

Former Member
0 Kudos

Hi Siou,

These are standard strucutres created by SAP and is used in Logical Database PSJ.

You will need to check this LDB in SM36 who has modified it.

Regards

former_member282467
Discoverer

We got it resolved... hopefully this will help someone down the road.

From one of our developer (Krishna Adabala)...

Execution of the PSJ LDB from any transaction or reports will create a few PSIS_GEN_* structures.  During the creation of these SAP is generating some reports also.  These can be seen in the table PSJGNREP table.

Once a structure is generated, looks like it can get re-generated if there is change in the number of fields of the base table structure (SAP checks are happening based on the number of fields also).  For example here PSIS_GEN_EBAN_PR and PSIS_GEN_EBAN_NP are created based on the EBAN structure.  Even though the data element of the fields in EBAN is changed, the number of fields in the EBAN didn't changed from the time when PSIS_GEN_EBAN_PR and PSIS_GEN_EBAN_NP initially were created.  So these structure didn't get updated with the new data elements as the number of fields in EBAN remained the same.

Now just added a dummy field in the custom include of EBAN and execute the PSJ  LDB and then removed the dummy field.  Now the PSIS_GEN_EBAN_PR and PSIS_GEN_EBAN_NP have the latest data element used.

Re-generation of PSIS_GEN_* structures:  The generation of these structures happens whe LDB PSJ is executed from any t-codes or reports.  For example RM06EKPS used LDB PSJ and is associated with t-codes CNB2, ME2J and ME3J.  So when any of these t-code is executed, the LDB PSJ is used to fetch the data.  In the LDB PSJ, these is the code for generation of these PSIS_GEN_* structures. Similarly, if you exectue the LDB PSJ in SE36 and input some values in selection screen and run it, the structures are generated (first time) / re-generated (in case of any changes in the structures).  The entries are created in the PSJGNREP table. 

Thanks a lot for sharing this.

0 Kudos

This answer helped me too thanks. However others may find it useful to know there's a simpler approach than adding and then removing a dummy field to trigger the regeneration - just delete the structures altogether. E.g. in our case our custom fields were on EKPO:

  • Delete PSIS_GEN_EKPO_PR
  • Delete PSIS_GEN_EKPO_NP
  • Run program RCN_GEN_PSIS_STRUCTURES (I expect executing the LDB as described above would work too)
  • The _NP structure is successfully regenerated.
  • The _PR structure is apparently no longer needed (confirmed on a SAP support incident)