on 01-13-2016 9:25 AM
Hi All,
I am enhancing Sales Quote Product Item with customer BO using EC following the guide Add custom BO to standards screen
provided by Stefan Krauth see below for detailed explanation how I created the BO and EC.
For some reason whenever I change the item it is not triggering the UIID change, from my perspective some initialization is missing but I am not sure how should I do it.
Thanks in advance.
Here is my BODL:
businessobject ProductVariant {
[AlternativeKey][Label("Varinat Identificator")] element variantID:ID; //NUMC 10"
[AlternativeKey][Label("Quotation Item UUID")] element QuoteItemUUID:UUID;
[Label("Product Id")] element productID:apCommonGDT:ProductInternalID;
association ToMaterial[1,1] to Material;
node Characteristics [0,n]{
[Label("Internal characteristic")] element atinnInternalCharacteristics:ID; //NUMC 10
[Label("Characteristic Name")] element atnamCharacteristicsName:LANGUAGEINDEPENDENT_MEDIUM_Text; //CHAR 30
node CharacteristicValues [0,n]{
[Label("Internal characteristic")] element atinnInternalCharacteristics:ID; //NUMC 10
[Label("Int counter")] element atzhlInternalCharacteristics:BusinessTransactionDocumentItemScheduleLineID;//NUMC 4
[Label("Characteristic Value")] element atwrtCharacteristicsValue:LANGUAGEINDEPENDENT_MEDIUM_Text;//CHAR 30
[Label("Characteristic value description")] element atwtbCharacteristicsDescription:MEDIUM_Name;//CHAR 30
}
}
}
The screen looks like
Data Model
InPort
Event
I am adding EC to screen : BYD_COD/SalesOnDemand/Quote/COD_QuoteTI.TI.uicomponet:
in the following Container:
Using Binding :
And here is the Test case:
When there is one item everything looks fine
But when they are two : Bind is not working
So here is my solution:
1. You have to check if In port has any value otherwise empty BO is created and you can not save.
2. Use the logic proposed from Stefan .
3. Add additional check if In port and current BO are different if yes create new BO .
see pictures for details.
1)
2) It is only in default when Inport is not initial.
3)Create and assign
I am not sure if empty comparison is needed probably not but it works that way.
Cheers Ognian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Richie,
You don't even need PDI for this. You can create a new tab and a section inside using the key user tools (adaption mode). Then you can go to the acitivty and visit facet and use the copy and past functionality to copy the panes you want to the new facet you created.
This is a different object, but here you see the copy icon on the visit pane.
Here you can see the paste button on a new custom section.
This is how it's done. I pasted the visit pane from the Service & Repair facet to the activities facet.
The same is possible to a new custom tab.
Best Regards,
Stefan
Hi,
The change of the InPort UUID should trigger the ReadOrCreate and the Read Operation should read the new instance of the new item EC.
However, look at what happens when the new item EC does not exist.
Click on first row:
1. Read -> Read is unsuccessful
2. Condition -> ItemUUID is empty
3. Create
Click on second row:
1. Read -> Read is unsuccessful
2. Condition -> ItemUUID is NOT empty (because UUID from first item is still present)
3. ...nothing happens.
You should be able to change the condition in a way that it does not check for an empty ItemUUID, but for a ItemUUID that is different to the InPort UUID.
Alternatively you can create logic that copies the InPort UUID not only to the bound ItemUUID field but also to another unassigned dummy field. You could then always clear this dummy field as first step in the ReadOrCreate event and point the condition to this field.
Best Regards,
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Stefan, I am totally agreed with you that there should be comparison against InPortUUID, but I can no see how I can put !=(not equal to) in screen logic . If I understand correctly I should do it. Further more whenever I try to use data operation clear the Pop up says this operation is not supported in run
Best Regards,
Ognian
User | Count |
---|---|
83 | |
10 | |
10 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.