Hi Folks,
[Updated on Jan 27, 2020
I got one feedback about Odata action on entity extension are not supported. It worked for me for one odd case, I yet to test myself if its not working now. I would request all readers to take necessary caution while trying below code. Thanks to Ashish for sharing his feedback.]
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.
[Updated May 18, 2020]
If you want to return any value use this syntax
[SysODataActionAttribute("<MethodName>", false), SysODataCollectionAttribute("return", Types::Record, "CarColor")]
public static void <methodName>(<parameters(optional)>)
{
}
Check below link for more details on Odata
Related topics:
-Harry Follow us on Facebook to keep in rhythm with
us. https:fb.com/theaxapta