Skip to Content

Hello,

this is a 1h video of PDI development to demonstrate a few best practices.

– Attach Facet with Custom BO to Standard Thing Inspector

– Implement AfterLoading to make things (in)visible based on complex checks

– Make fields (in)visible only for iPad

– Allow technical user to save mandatory custom field.

Everything gets implemented in an iPad compatible way.

This is my fist video here and I didn’t prepare much for it.

I hope it will help you.

Best Regards,
Stefan

To report this post you need to login first.

24 Comments

You must be Logged on to comment or reply to a post.

  1. SVEN FEURER

    Thanks Stefan for sharing this experiences. Need more of those explanations to show the functional variety of the SAP Cloud Applications Studio (SDK).

    (0) 
  2. Nikhil Haldankar

    Great Video:-) Really  helped for me ,,because you have explained very small things in this tutor.As i am a beginner i am facing  many problems to create the custom business object. you have not neglected to explain small and basic things. Looking forward to see many videos as soon as possible from you. 🙂

    (0) 
  3. Christine Toblier

    Hi Stefan!

    Thank you for sharing this video. It was a great help.

    May I ask a further question about the binding in initialize event handler:

    I tried to create an embedded component for a CustomerQuote.Item and I added it to the screen quoteoifeco.OIF. I followed your instructions, but the values of the embedded component are not populated.

    I thought the reason could be the binding for the read operation.

    The public outport of the screen has the item’s nodeID as an parameter.

    I tried set the parameter type for nodeId to “nodeId” instead of “alternative Key”, but that didn’t solve the problem.

    It would be great, if you could share your experience about that.

    Kind regards,

    Christine Toblier

    (0) 
    1. Stefan Hagen Post author

      Hi Christine,

      If you display the inport ID on the EC, is it populated?

      Did you set the inport trigger on initialization and on reload?

      On the quote item, I assume you would like to use the QuoteItemUUID as ID in the EC.

      I’m not working in the BYD area, so I don’t really know the OIF screen.

      Best Regards,
      Stefan

      (0) 
      1. Christine Toblier

        Thank you for your answer.

        Only the Inport ID is populated on the EC.

        I did set the setting “RequestFireOnInitialization” to true and i configured an Initialization Handler that reads the data.

        I tried to use the ItemUUID, but that didn’t work too.

        Kind regards,

        Christine

        (0) 
        1. Ognian Kalaydjiev

          Hi Christine,

          did you solve your issue . I have same issue with Sales Quote Item in C4C.

          I am enhancing BYD_COD/SalesOnDemand/Quote/COD_QuoteTI.TI.uicomponet

          On Product tab.

          QuoteItemUUID is the key what I am using .

          Whenever I have two items.

          In debug screen the UUID coming from InPort is changing but

          the UUID in EC stays to firs one. If I understand it correctly some initializations is needed on event Fire but clear is now allowed. So I am wondering what is the right way to reset the data.

          Cheers Ognian

          (0) 
          1. Stefan Hagen Post author

            For an item use-case you need to set RequestAutoRefire to true. The difference is that RequestOnInitializations passes a value to the EC only in case the EC is uninitialized.

            RequestAutoRefire also passes the value to the EC even the EC is initialized.

            Best Regards,

            Stefan

            (0) 
  4. Priyadarshini Rangarajan

    HI,

         Thanks for the presentation.

    Experts , I have a doubt , is it possible to change the Title of the custom tab added to the standard screen from the initial title(one given when creating)?

    (0) 
        1. Stefan Hagen Post author

          Hello Priya,

          unfortunately no. Once you bound the EC, the title is fix from a PDI/UIDesigner perspective. You can either rebind it, which is usually small effort. Or you can use the adaptation mode to rename it.

          Best Regards,
          Stefan

          (0) 
  5. ivan emeierrege

    Hi Stefan,

    We found your tutorial very cool, rich and useful,  you’ve helped us a lot with some of our developments with this EC functionality, because in the Studio PDF documentation this EC functionality doesn’t help too much.

    But unfortunately we have a problem:

    We have in the standar BO for Accounts a Embedded component and it works fine, passing values from the Account to the custom EC , but when we enter with two different users to the same Account , the first one acces correctly to the account and to the custom EC screen, but the second user gets a dump.

    /wp-content/uploads/2015/12/0001_850066.png

    we have raised an incident and this was the response from support:

    Dear Customer

    Thanks for contacting SAP Product Support.

    This issue is occurring due to a wrong UI configuration repeatedly done in many partner ECs these days.

    The inport parameter is

    taken into an unbound field which is correct.

    But later, this is being assigned to a bound data field with a data operation which is wrong. The bound data field should be having the value with the BO create or read, not through an explicit data operation.

    We have checked this in the EC /YRD80Q1OY_MAIN/SRC/Customer Consumption Report.EC.uicomponent. The same mistake is repeated in other EC components as well.

    Please correct this, and the issue should be resolved.

    ————————————————

    So, we have the same configuration as your tutorial (min 23:35 in your video) , but we are not sure how to avoid this error/dump.

    Thanks for your help

    (0) 
    1. Stefan Hagen Post author

      Hi Ivan,

      although it is entirely possible that I did something wrong in the video, I’ve not heard of such an effect due to this method in the last 1,5 years. I ask myself which other options you would have to take over the inport value into an instance when not using a data operation. The Inport value is not accessible via ABSL and scripting is not iPad compatible.

      I find this statement alerting:

      > This issue is occurring due to a wrong UI configuration repeatedly done in many partner ECs these days.

      Can you please bring me in contact with the support person?

      Another way to work with EC is to create the custom bo instance not via UI, but via absl in the OnSave Event in the Account. So if you directly create the custom BO instance when the account is saved, you only need a read in the EC UI logic.

      This method only works for newly created host objects (accounts).

      Another idea why a second EC access might fail could be the condition. If the read was successful (a user create the EC instance before), but then a create is performed on top and the same ID is tried to set as alternative key it will also dump.

      Best Regards,
      Stefan

      (0) 
      1. Stefan Hagen Post author

        One more thing. I’ve corrected myself in the video – did you take care the the create comes first and then the assign (and not the other way around)?

        (0) 
  6. Ognian Kalaydjiev

    Thank you Stefan, for very informative example.

    What Is still missing for me is how you can use this embedded object to enhance the standard web interface with the additional data form Embedded object. Is this possible at all.

    In my case scenario I have to enhance quote item with multiple key values and if I understand correctly limitation for enhancing  standard objects ( you can enhance standard objects only with elements, not nodes neither associations)  the only way to do it on screen is using the technique you provide.  But than rise the questions how this additional data will be transferred to external system using standard Interfaces?

    Thank you for you help Ognian.

    (0) 
    1. Stefan Hagen Post author

      Starting with 1508 it is possible to enhance standard objects with nodes.

      But… adding these nodes to the standard webservice using a process communication scenario is still a limitation.

      Therefore you can only provide an additional custom service on top of your custom object.

      Best Regards,

      Stefan

      (0) 
  7. Benny Huang

    Hi Stefan,

    I can’t access the youtobe at China, I want to create a shadow BO, it is a list, add to the qaf screen.

    First, I create a child BO, as

    Second, I created the EC, DataModel as

    Third, it is the inport configure

    Forth, I created the Init eventhandler

    The result is add row is disabled

    What is the problem?

    Thanks a lot.

    Benny

    (0) 
  8. Stefan Hagen Post author

    Hi Benny,

    looks like you’ve done everything right so far. Is the Advanced List Pane bound to the DataList in the Data Model?

    You can download the MP4 Version of the videos here.

    Best Regards,
    Stefan

    (0) 

Leave a Reply