Solved

How to automatically print and advance invoice with specific payment terms?

  • 6 November 2023
  • 7 replies
  • 108 views

Userlevel 5
Badge +15

Hello,

For specific advance invoices that come from our online store processing, we’d like that these invoices get automatically set to “PostedAuth”. Since this can be done by having those invoices print off automatically, I tried to create a workflow to grab the wanted invoice when one has been created via an event action, but whenever I attempt to call the Projection “CustomerOrderInvoiceHandling” with the call “CustomerOrderInvHead_PrintInvoice(NcfReference):ReportResultStruc” I get the following error

 

ORA-00034: cannot ROLLBACK in current PL/SQL session ORA-06512: at "IFSAPP.CUSTOMER_ORDER_INV_HEAD_API", line 3139 ORA-00034: cannot SET SAVEPOINT in current PL/SQL session ORA-06512: at "IFSAPP.CUSTOMER_ORDER_INV_HEAD_API", line 2781 ORA-06512: at "IFSAPP.CUSTOMER_ORDER_INV_HEAD_API", line 3175 ORA-06512: at "IFSAPP.CUSTOMER_ORDER_INV_HEAD_API", line 3180 ORA-06512: at "IFSAPP.CUSTOMER_ORDER_FLOW_API", line 6610 ORA-06512: at "IFSAPP.CUSTOMER_ORDER_FLOW_API", line 2488 ORA-06512: at "IFSAPP.CUSTOMER_ORDER_INVOICE_HANDLING_SVC", line 21036 ORA-06512: at "IFSAPP.CUSTOMER_ORDER_INVOICE_HANDLING_SVC", line 21530 ORA-06512: at "IFSAPP.CUSTOMER_ORDER_INVOICE_HANDLING_SVC", line 6592 ORA-06512: at line 5

This obviously stops any attempt at printing the invoice automatically. I’ve tried ordering the invoice via OrderReportHandling but this doesnt work either.

One thing I also noticed was that the NcfReference value for all invoices are NULL so.. I’m not really sure how else to approach this.

I would normally attempt to create an event action of type execute online sql, but that doesn’t get me far as I have no idea what calls to use to print invoices off via the procedures/functions for the backend plsql that IFS is built with.

 

We are currently using IFS Cloud 22R2 but we have plans to move to 23R1 soon. Any and all advise would be greatly appreciated.

 

Thanks,
Bryan

icon

Best answer by bdoucette 19 December 2023, 15:06

View original

7 replies

Userlevel 3
Badge +5

For the error in workflow projection call, it seems there are commits in the function/action plsql implementation. These kind of commits are not supported to be used with workflows, and unless these commits are removed and transaction is fully managed by OData, workflow can’t be used.

Userlevel 5
Badge +15

Hi @Buddhi Gunasekara 

I assumed as much from other community forum posts but, my main question is, how can I achieve my desired end result of ONLY advance invoices with certain payment terms automatically printing?

If I can’t achieve this via a workflow, then how can I achieve this, especially when there doesn’t seem to be documentation on the backend sql procedures/functions?

Thanks,
Bryan

Userlevel 5
Badge +15

@Lahirumala de Mel

Do you have any input on this?

Userlevel 5
Badge +15

I guess not… is there anyone willing to respond and shed some light on this obvious limitation of BPA workflows in IFS Cloud?

Userlevel 3
Badge +7

@Lahirumala de Mel

Do you have any input on this?

Sorry I missed this comment. My answer might not help you but if there are commits in the APIs that are used in the Workflow and there are no alternative APIs to be used, perhaps Workflows is not the solution you need to achieve this. Workflows rely on being atomic and it will not be atomic if there are commits in the middle of Workflow execution. Cannot exactly point you to an alternative but worst case is to go for a customization. 

Userlevel 6
Badge +15

@bdoucette I gave up using workflow for automation. Nowadays I use it maximum for validation of user input. Too many times when I thought of using WF for some ‘light’ automation (at least in my head was light), there was always a commit/rollback/savepoint.

I really do hope IFS R&D will remove this limitation.

Have you considered maybe having an order type that will not stop after invoice is created? This way you could use a dedicated order type for these orders and then the invoice will be automatically printed.

Userlevel 5
Badge +15

Hi @Marcel.Ausan 

That’s fair, workflows seem really useful until you try to implement them. Not sure why IFS is so nonchalant about fixing an issue that really cripples IFS Cloud development. To any potential new IFS Cloud users, I say run for the hills. Basic functionality is missing from every area in IFS, causing customers to have to build their own platform, which is a mess when the tools we are given to do so are also half-baked as well.

I fixed this current issue by setting up a report rule to manually print this invoice off when created in the system. You can select certain parameters in report rules to filter based off payment terms. Users just have to select ‘print and create’ instead of just ‘create’ when creating the advance invoice and everything should work fine.

Yet again having to create workarounds for something that seemingly would be basic functionality in any other system.

Reply