web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Suggested Answer

Recurring integrations api VS data management framework package api

(0) ShareShare
ReportReport
Posted on by 465

So from what i understood these two are used for no real time scenarios.

My question is when to use each one?

And for example let's say i want to to send sales invoices from d365 to an external system, which one should i use?

And based on the 2nd question answer.. Can u give me more details about this type.. How i'm going to send these sales invoices? 

I have the same question (0)
  • Sergei Minozhenko Profile Picture
    23,095 on at

    Hi D365FO_user,

    I would say you can use Data package API in real-time or near real-time scenarios, but both approaches are usually used in high-volume scenarios.

    If you decide to use Data package API, you should consider that execution is scheduled outside F&O. Middleware or external system should request execution, monitor it, and download the result.

    For recurring integration execution is scheduled inside F&O, you need to understand the schedule first, how frequent it will be, and how much data will be exported per run. If it will be a high-frequent job you could have a lot of empty runs when execution doesn't export anything and it will give overhead on the batch framework.

    Why don't you consider a real-time scenario like Business event + oData? Is it a requirement from the external system?

  • Suggested answer
    Laura Manache Profile Picture
    Microsoft Employee on at

    Hi,

    Please have a look on this documentation that describes integration patterns, scenarios, solutions and best practices:
    https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/integration-overview 

    You may also consider this TechTalk recording for some examples on how to use Dual-write and CDS for D365FinOps integration with other apps:
    https://community.dynamics.com/365/b/techtalks/posts/dynamics-365-finance-scm-dual-write-framework-may-4-2020

    With kind thoughts,
    Laura

  • D365FO user Profile Picture
    465 on at

    Hi Sergie,

    From what i read, these two types are used for high volumes.. and in my case there might be thousands of records that's why i chose them. And as i read further only data package is used with on premise so i think i will exclude the recurring integration.

    1. So do you mean that if i have high volume i can still use real time types? if yes why should i prefer  real time on data package?

    2. what do u mean by scheduled outside FO? Here's what i'm imagining, there will be a button on the form that generates a file( my button will be action menu item for a batch), this button will do the logic for data package api then it will reach on premise for example... now that u say it's schedule outside FO, does that mean on-premise will go back to me and trigger the data package, so my button will have what logic?

    3. Can you explain to me how to begin with data package api, just to understand? what i need to do? am i going to use DIXF? should i create data entities? what logic should my button have? Am i going to write code in c# to receive file and test? what do i need to do exactly?

    4. the data i send in what format will it reach the on premise?

    5. How do i get to the sales invoices, what form is it? i need custInvoiceTrans and custInvoiceJour.

  • Suggested answer
    nmaenpaa Profile Picture
    101,166 Moderator on at

    1. Recurring integrations or Data package API are recommended with high volumes. OData is not very good with high volumes.

    2. Recurring integrations or Data package API should not be launched by a button. Instead they are recurring = they run automatically. You set up the integration by creating a data project in Data Management workspace. Scheduled outside F&O means that the system who calls D365FO triggers the integration (by calling the endpoint). This is different than in recurring integrations, where a batch job in D365FO runs at predefined interval and creates messages in a message queue in D365FO. Then the external system just polls this queue and fetches the messages.

    3. I suggest to begin by checking the official documentation: docs.microsoft.com/.../data-management-api

    It's always based on data entities.

    4. You can choose between many file types such as XML, CSV or Excel.

  • Sergei Minozhenko Profile Picture
    23,095 on at

    Hi D365FO_user,

    When I mentioned BE and oData, I meant that there is a standard business event triggered when the invoice is posted and the external system can download this invoice immediately via Odata call when they receive the event. Additionally, that can send back oData requests that they received this invoice (some kind of insert to log table or update existing field on invoice journal header)

    Is it your requirement to send all invoices at once by the button? Do you want to send only certain invoices (maybe for certain customers)?

    As Nicolaos mentioned, the button is not a good option to trigger the integration. With the button, you can mark that certain invoices are ready to be sent and apply filter by this indicator in a data project.

  • D365FO user Profile Picture
    465 on at

    Hi Sergie and Nikolas,

    Thanks alot both.

    1. So a batch job should be used only with recurring integrations but since i'm talking with on premise system then using data package means i should not use a batch job(and by that i mean creating a contract,controller and service classes) but with recurring integrations i should create these classes?

    2. but just to make things clear, i won't be able to run the data package every certain interval then?

    3. The service i want is an inbound service, so D365 should communicate with an on premise system, i might want to send all invoices or certain invoices.

    So i thought i should create a button that will trigger a batch job and authenticate with the external system and then i will be able to generate a file containing these invoices.

    So now u say u say i should not create a button.. can u explain to me a generic steps using data management to achieve my goal? how will it work as batch, i don't really get it?

    4. how to create data project?

    pastedimage1590662302997v1.png

    5. what form has custInvoiceJour and custInvoiceTrans in d365fo?

    6. The code written here, where is it written exactly? is it in x++?
    pastedimage1590662399404v2.png

  • Suggested answer
    nmaenpaa Profile Picture
    101,166 Moderator on at

    1. No, you don't need to develop anything. You simply need to create a data project and create a recurring data job in that project

    2. You are able to do that. But the interval is managed by the external system, not D365FO.

    3. With recurring integrations and data package API, D365FO is not communicating with any system. The external system must initiate the communications.

    If your external system can't poll D365FO, you can set up a middleman system such as Recurring Integrations Scheduler, BizTalk or Logic Apps. This system would handle polling D365FO and sending the data to your external system. Or you can develop your own custom batch job in D365FO that collects data and sends it to web service of your external system. But in this case you would not create a data project and you would not use recurring integrations or data package API.

    4. In Data management workspace, on the left hand side you have two big tiles: Export and Import. Click them to create export / import projects

    5. CustInvoiceJournal. But not sure why you are asking about a form. Did you mean "what data entity"? You can use CustInvoiceJournalHeaderEntity and CustInvoiceJournalLineEntity. You can also right click any table in AOT and click Find references to find all referenced objects, including data entities

    6. Where is this screenshot from? How did you end up asking about it?

  • Martin Dráb Profile Picture
    239,031 Most Valuable Professional on at

    1) No, you don't have to implement any classes in either case. In both cases, you'll use existing services, you won't create custom ones. The difference is whether scheduling is done inside AX (a batch) or in the external system (e.g. a logic app scheduled to run every hour).

    2) See 1)

    3) See 1)

    If you want a manual action such as a button click, you don't need any batch or any other scheduling mechanism. You won't have any recurrence; it'll be triggered manually.

    5) Use "Find references" to see where an object is used. If you have more questions, please create a new thread, because this is off-topic.

    6) No, it's not X++ and it's it normally wouldn't be inside F&O. You'll call the web service from an external application.

  • D365FO user Profile Picture
    465 on at

    Thanks both.

    1. is a "data entity package" the same as "data management framework package api"?

    2. I should make a data entity that has both header and lines if i want to generate a file with fields from both data entities, or is there one that has both?

    3. how about a button that triggers the data entity package?

    So when i click on the button, i will choose (whether i want all invoices or certain ones) (and if i choose all invoices then i want to say that i need this to be sent every month for example) then i will authenticate with the api, and when the authentication is successful, i will generate the file to the api and then it can send it to BizTalk or Logic Apps which will talk with the external system.

    is this doable using package api? i think i only need to worry about the authentication request and be able to see the response (which is the generated file).

    how can i do this? or is my scenario seems i need to do it manually using a batch job

  • Suggested answer
    nmaenpaa Profile Picture
    101,166 Moderator on at

    1. Data package is the file that you get from Data Management package API.

    2. You can develop composite entities, and use the ones that are predefined by Microsoft. Search the web for more info, or please post another question.

    3. Are you sure that you want to "do it manually using a batch job"? That is a contradicting statement. Batch jobs run automatically. You can set filter criteria on the data project, in order to send the invoices that you want to send.

    Could you please try to describe your underlying business requirement? It's important to fully understand it before jumping into technical implementation details.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Stars!

Congratulations to our 2025 Community Spotlights

Thanks to all of our 2025 Community Spotlight stars!

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
Giorgio Bonacorsi Profile Picture

Giorgio Bonacorsi 659

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 465 Super User 2026 Season 1

#3
Syed Haris Shah Profile Picture

Syed Haris Shah 304 Super User 2026 Season 1

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans