cancel
Showing results for 
Search instead for 
Did you mean: 

Customer depending Additional check for Engineering Record

Former Member
0 Kudos

Dear Expert,

Our customer is planning that they use the Engineering Record with NWBC for Product Design process.

And I got the requirement from customer as below.

- Check the 'Stats' ,'Validity Date' and 'Access Control Context' of Engineering Change Master related to this Engineering Record at change the Engineering Record status.

- Check the 'Status' and 'Access Control Context' of objects (Ex.Material Master) related to Engineering Record at change the Engineering Record status.

For this purpose, I'm looking for the BAdI of Engineering Record.

But I can't find it for this requirement.

Could you please advice me about approach for this requirement?

Best Regards,

Seiichiro Otsuka

Accepted Solutions (1)

Accepted Solutions (1)

former_member214775
Contributor
0 Kudos

Hi Seiichiro,

you can try to use the following BAdI:

Logistics - General - Product Lifecycle Management (PLM) - PLM Web User Interface - Engineering Record - BAdI: Change Items Settings

Or:

you can enhance the /PLMI/IF_ECR_HDR interface with methods for the header attributes:

/PLMI/IF_ECR_HDR~VALIDATE

/PLMI/IF_ECR_HDR~ENRICH

/PLMI/IF_ECR_HDR~REFRESH


you can enhance the /PLMI/IF_ECR_CHG_ITM  interface with methods for the change items:

/PLMI/IF_ECR_CHG_ITM~VALIDATE_ECR_ATTRIB

/PLMI/IF_ECR_CHG_ITM~ ENRICH_ECR_ATTRIB

/PLMI/IF_ECR_CHG_ITM~GET_OBJECT_ATTRIB


If your requirement is related to different actions (like save) then you can use the methods of the ECR BO:

/PLMI/CL_ECR_BO e.g.: CHECK_BEFORE_SAVE etc.


Best regards

Tamas

Former Member
0 Kudos

Hi Tamas,

Thank you for your prompt reply.

I don't know the procedure of enhancement the /PLMI/IF_ECR_HDR and /PLMI/IF_ECR_CHG_ITM.

I'd really appreciate If you explain more detail procedure for enhancement.


Best Regards,

Seiichiro

0 Kudos

Hi Seiichiro,


In the Engineering Record customizing ( PLM Web User Interface -> Objects in PLM Web UI -> Engineering Record -> Make Settings for Engineering Records) if you open the details of one of the types, you will find this field: Class Name


In this field you have a class which implements the mentioned interface (/PLMI/IF_ECR_HDR ). So if you create your own class implementing the same interface, or use the /PLMI/CL_ECR_HDR_GEN_FED as a super class and redefine the method, you can change the logic and implement your own code.


The same is true for the Engineering Record Items.


After you have your own classes, just use them in the customizing.


Regards,

Gergely

Answers (2)

Answers (2)

abhishek_gupta2
Participant
0 Kudos

Hi There ,

The way to solve your problem is by using the interface /PLMI/IF_ECR_HDR and the procedure is very simple and not much efforts are needed . I personally have used this approach and found it very efficeint .


SAP provides the feeder class for header : /PLMI/CL_ECR_HDR_GEN_FED..


Now what you need to do is to create your own feeder class and in this feeder class implement the interface /PLMI/IF_ECR_HDR. In order to perform a check on the fields of the header , you need to implement the VALIDATE method .


After this you need to go at the following path in the spro settings as below : PLM Web User Interface -> Objects in PLM Web UI -> Engineering Record -> Make Settings for Engineering Records.


Select your engineering record type and press on the details button . Here you need to replace the class name /PLMI/CL_ECR_HDR_GEN_FED. with your class name which you implemented .


In this way you can check/validate the fields of the engineering record header .


Hope this helps , bye from India


Abhishek.

0 Kudos

Hi Seiichiro,


For the Owning Context check you can use the BAdI /PLMB/EX_SPI_APPL_ACCESS.

You can use the these filters:

  • APPLICATION_BUILDING_BLOCK = PLM_OWNACC AND
  • NODE_NAME = ACC_REL_OBJ_ID


If you implement the BEFORE_UPDATE method you can use the  it_node_data importing parameter to check the Owning Context assignment to the given Engineering Record.


Note: this implementation will be called for every objects, so make sure the code is only running for the Engineering Record.


Kind Regards,

Gergely