How do I add a pdf/base64 to a cloud api?

SunsetSunset Member Posts: 201
Is it possible in the Cloud to generate a pdf document and transfer that to an API?

I am trying to create an API for the "Purch. Inv. Header" that includes a printed version of the Invoice as Base64. I have been trying to use the Report.SaveAs funtionality, but keep getting an error stating that unknown language has been selected.
{"error":{"code":"Unknown","message":"Der er valgt et ukendt sprog ('6').

My feeling is that either that it really is a language thing and it simply is not possible in danish, or perhaps I am missing something.
If I remove the code generating the report everything runs fine
report.SaveAs(ReportSelections."Report ID", XMLParameter, ReportFormat::Pdf, OutS, RecRef);

My suspicion regarding the language issue is due to the fact that I receive the exact same error when trying to use the buildin funktionality about getting invoice as pdf using https://docs.microsoft.com/en-us/dynamics-nav/api-reference/v1.0/api/dynamics_salesinvoice_pdfdocument

The code is running in a sandbox environment on https://businesscentral.dynamics.com/
Don't just take my word for it, test it yourself

Best Answer

  • SunsetSunset Member Posts: 201
    Answer ✓
    Problem found. For testing I have been using Edge since that surely works with Business Central... :smiley:

    Well, it turns out the for request headers Edge is using the short value for Accept-Language. So it instead of en-US and da-DK it sends en or da.
    And since Business Central requires the full value in order to translate it for the language selection in the report, the system throws an error.

    So the solution, for now, is to use Chroe or PostMan or something you make yourself. Just make sure that it sends the full value for Accept-Language
    Don't just take my word for it, test it yourself

Answers

  • SunsetSunset Member Posts: 201
    Answer ✓
    Problem found. For testing I have been using Edge since that surely works with Business Central... :smiley:

    Well, it turns out the for request headers Edge is using the short value for Accept-Language. So it instead of en-US and da-DK it sends en or da.
    And since Business Central requires the full value in order to translate it for the language selection in the report, the system throws an error.

    So the solution, for now, is to use Chroe or PostMan or something you make yourself. Just make sure that it sends the full value for Accept-Language
    Don't just take my word for it, test it yourself
Sign In or Register to comment.