May 13, 2019

How to add 'Actions' on Odata entities


Hi Folks,

In this post, I'll show how to add a new action to D365FO Odata entities which you may want to access in Logic apps or Microsoft Flow. There could be two possible scenarios, either you have custom data entity where you can directly add a method or you have standard data entity for that you need to create extension class.  

First, let's see how to add on the custom entity (yes cause, it's straight forward 😉 ), 

Add your method on data entity and add below attribute
 [SysODataActionAttribute("<MethodName>", false)]
public static void <methodName>(<parameters(optional)>)
{
}

Save, Synch and Build your changes. This method should be available now on OData action in the Logic app or Flow. 

Now the other part, how to add the same in Data entity extension. Create a new class and add below attribute.

[ExtensionOf(tableStr(<data entity name>))]
final class <data entity name>_Extension
{
         [SysODataActionAttribute("<MethodName>", false)]
         public static void <methodName>(<parameters(optional)>)
        {
         }
}

Pl make sure you use '_Extension' keyword for above class, it's mandatory.

That's all for today. Try it and share your feedback. 

Related topics:

-Harry Follow us on Facebook to keep in rhythm with us. https:fb.com/theaxapta


3 comments:

  1. Hi Deepak

    I'm wondering on which platforms you have tried/developed this code.

    We're on 10.0.1, PU24, but using this approach we can't get the expected result. The new action does not appear in metadata.

    BR, Atis

    ReplyDelete
  2. Hey Atis,

    I have tried this code with V8.0 and this should work with v10.x as well. Can you share some screenshot or reference where its not working.

    Thanks

    ReplyDelete
  3. Hello Deepak,

    We tried the same approach of adding an action using entity extension class and it doesn't appear in LogicApp. We have created action on ExpenseJournalHeaderEntity. It has no standard action OOB. Do we need to do anything additional after adding action? We tried in 10.0 PU26

    ReplyDelete

Thanks