on 05-28-2013 5:32 PM
Hi Expert,
my client has a specific business case where Sap Sourcing bid process is not applicable and an award process is outside the system. So an agreement is created from a project but we miss line items created in previous steps in RFX. Once RFX is replicated from SAP ERP it's linked with a project. I'm just wondering how to create an agreement based on project coping also line item data from a linked RFX. I'm afraid it won't be easy as RFX line items and an Agreement line items have different structure.
Maybe you have any experience how to copy line items from RFX and paste into an agreement.
Your response will be very appreciated.
Marcin
Hi,
we are trying to copy line items from Master Agreement to a Subagreement but we are not able to do it. Did you manage to copy line items from RFx to Master Agreement?
Many thanks.
Marc R.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Marc,
please find below a part of our script responsible for coping line items from a RFX and adding these lines to a Master Agreement. A MA is created from a Project and a RFX must be linked with this project.
While creating MA you have to select MA template (not MA type) because only template will create default line item group where line items are added..
/* start funkcjonalności do dodawania linii z RFX */
iter = doc.getDocumentLinkList().iterator();
exist = "false";
proj_id = null;
for (memb : iter)
{
if (hasValue(memb.getLinkDocId()) @and hasValue(memb.getLinkDefinitionObjRef().getDisplayName())) {
logInfo("A1AAAA3: " + memb.getLinkDocId() );
logInfo("A1AAAA3: " + memb.getLinkDefinitionObjRef().getDisplayName() );
if ( memb.getLinkDefinitionObjRef().getDisplayName().equals("Powiązany projekt") ) {
proj_id = memb.getLinkDocId();
}
}
}
if (hasValue(proj_id) @and collectionsize == 0) {
// tworzymy Home dla obiektu Projekt
myProjHome = IBeanHomeLocator.lookup(session, ProjectIBeanHomeIfc.sHOME_NAME );
// szukamy poprzez Home konkretnej instancji projektu
relProjectIfc = myProjHome.findForEditByUniqueDocName(proj_id);
if (hasValue(relProjectIfc)) {
logInfo("AWAWAWAW" + relProjectIfc.getDisplayName() );
rfx_name = relProjectIfc.getExtensionField("zmm_nr_rfx").get();
if(hasValue(rfx_name)) {
myRFXHome = IBeanHomeLocator.lookup(session, RfxDocIBeanHomeIfc.sHOME_NAME);
myRFX = myRFXHome.findByUniqueDocName(rfx_name);
if(hasValue(myRFX)) {
logInfo("huuuraaazz" + myRFX.getDisplayName());
iter2 = myRFX.getLineItems().iterator();
doc.getFieldMetadata("PURCHASING_GRP").set(doc, myRFX.getFieldMetadata("PURCHASING_GRP").get(myRFX));
doc.getFieldMetadata("PURCHASING_ORG").set(doc, myRFX.getFieldMetadata("PURCHASING_ORG").get(myRFX));
doc.getFieldMetadata("COMPANY_CODE").set(doc, myRFX.getFieldMetadata("COMPANY_CODE").get(myRFX));
doc.getFieldMetadata("TRANSACTION_TYPE").set(doc, myRFX.getFieldMetadata("TRANSACTION_TYPE").get(myRFX));
// doc.getFieldMetadata("DELIVERY_TERM_FIRST").set(doc, myRFX.getFieldMetadata("DELIVERY_TERM_FIRST").get(myRFX));
// doc.getFieldMetadata("DELIVERY_TERM_LOCATION").set(doc, myRFX.getFieldMetadata("DELIVERY_TERM_LOCATION").get(myRFX));
// doc.getFieldMetadata("DELIVERY_TERM_LOCKED").set(doc, myRFX.getFieldMetadata("DELIVERY_TERM_LOCKED").get(myRFX));
// doc.getFieldMetadata("DELIVERY_TERM_SETUP").set(doc, myRFX.getFieldMetadata("DELIVERY_TERM_SETUP").get(myRFX));
//doc.getTerms().set(doc, myRFX.getDeliveryTerms().get(0) );
for (rfxline : iter2)
{
agr_docline = doc.getLineItems().create();
if(hasValue( rfxline.getFieldMetadata("MATERIAL").get(rfxline) )) {
// jeśli jest materiał to pobierz materiał, ilość, zakład
agr_docline.getFieldMetadata("MATERIAL").set(agr_docline, rfxline.getFieldMetadata("MATERIAL").get(rfxline));
agr_docline.getFieldMetadata("QUANTITY").set(agr_docline, rfxline.getFieldMetadata("QUANTITY").get(rfxline));
agr_docline.getFieldMetadata("PLANT").set(agr_docline, null);
} else {
// jeśli materiał jest pusty pobierz Description, Product Category, Price Unit
// Description - DOCUMENT_DESCRIPTION, LONG_DESC
// Product Category - ITEM_CAT, INTERNAL_CAT, ACCT_ASGN_CAT
// Price Unit - PRICE_UNIT
agr_docline.getFieldMetadata("QUANTITY").set(agr_docline, rfxline.getFieldMetadata("QUANTITY").get(rfxline));
agr_docline.getFieldMetadata("INTERNAL_CAT").set(agr_docline, rfxline.getFieldMetadata("INTERNAL_CAT").get(rfxline));
agr_docline.getFieldMetadata("DOCUMENT_DESCRIPTION").set(agr_docline, rfxline.getFieldMetadata("DOCUMENT_DESCRIPTION").get(rfxline));
agr_docline.getFieldMetadata("PRICE_UNIT").set(agr_docline, rfxline.getFieldMetadata("PRICE_UNIT").get(rfxline));
//agr_docline.getFieldMetadata("AWARDED_INCOTERM_LOCATION").set(agr_docline, rfxline.getFieldMetadata("DOCUMENT_DESCRIPTION").get(rfxline));
//logInfo("A12345: " + agr_docline.getFieldMetadata("LINE_ITEM_NUMBER_COMP").get(agr_docline) );
//logInfo("A12345: " + agr_docline.getFieldMetadata("DOCUMENT_DESCRIPTION").get(agr_docline) );
//agr_docline.getFieldMetadata("PLANT").set(agr_docline, null);
}
//agr_docline.getCollectionMetadata("DOCUMENT_LINKS").set(agr_docline, rfxline.getCollectionMetadata("DOCUMENT_LINKS").get(rfxline));
iter33 = rfxline.getDocumentLinkList().iterator();
// logInfo("QQQQ03: bylem: " + rfxline.getDocumentLinkList().size());
for (docLink : iter33)
{
//logInfo("QQQQ03: " + memb33.getLinkDocId() );
//logInfo("QQQQ011: " + docLink.getLinkDefinitionObjRef().getDisplayName() );
dl = agr_docline.getDocumentLinkList().create();
dl.setDisplayName( docLink.getDisplayName() );
dl.setLinkDefinitionType( docLink.getLinkDefinitionType() );
//dl.setLinkDocObjRef( docLink.getObjectReference() );
dl.setLinkDocObjRef( docLink.getLinkDocObjRef() );
dl.setLinkDefinitionObjRef( docLink.getLinkDefinitionObjRef() );
dl.setLinkDocId( docLink.getLinkDocId() );
dl.setExtRefDoc( docLink.getExtRefDoc() );
dl.setExtRefLine( docLink.getExtRefLine() );
dl.setLinkExternalDocName( docLink.getLinkExternalDocName() );
dl.setLinkExternalDocUrl( docLink.getLinkExternalDocUrl() );
logInfo("QQQQ0114: " + dl.getDisplayName() );
agr_docline.getDocumentLinkList().add(dl);
}
doc.getLineItems().add(agr_docline);
}
Regards,
Marcin
Hi Marcin ,
Even I have the same requirement , technically it os possible through script , if anybody used any configuration to do it ?
Regards,
Piyush Srivastava
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.