Question

Filling a persistant CF in customer invoice lines

  • 21 November 2023
  • 7 replies
  • 54 views

Userlevel 2
Badge +9

Hello.
In this screen : ifsapf:tbwOverviewCustomerInvoiceItem_Ext

 

We added a persistant CF, formatted as text.

The user would like to enter a datum to this specific field, without editing any standard field :

 

But an error occurs, preventing to fill the field :

 


7 replies

Userlevel 6
Badge +15

@romsar updating persistent CF will be treated by the same validations as if you try to change amounts / payment terms once the invoice has been printed. All edits (standard and custom fields) can only be done when the Invoice is in Preliminary status and financial postings were not created.

I’m afraid there’s no way around that unfortunately.

Userlevel 7
Badge +22

Hi @romsar 

did you try to edit the field in status planned?

It isn’t possible to chang a field (also CF) in status Picked, Invoiced/Closed, Delivered etc.

Userlevel 2
Badge +9

Hello. 
The update must be done independently of the invoice status.
I will report that IFS can’t make that possible, I will see how we will proceed, say, making a read only CF

Userlevel 7
Badge +22

Maybe you can think about a custom event that allows you to update the field in any state.

Userlevel 6
Badge +15

Hi @romsar 

did you try to edit the field in status planned?

It isn’t possible to chang a field (also CF) in status Picked, Invoiced/Closed, Delivered etc.

@Link I guess what @romsar needs to update is Customer Invoice Line. Once the Customer Invoice is created → it goes in Preliminary status. While it’s in preliminary status it can be edited. But once the user will Print the Invoice it goes to Printed -> PostedAuth status, that’s the moment when the financial postings will happen and no more updates are accepted in the Customer Invoice or Customer Invoice Line.

Custom event should do a direct update. Is invoice_item_api.modify_ is used, it will still undergo the same validations and fail 😥

Userlevel 2
Badge +9

@Link I made the following test via sql developper :

DECLARE

   -- p0 -> __lsResult

   p0_ VARCHAR2(32000) := NULL;

   -- p1 -> __sObjid

   p1_ VARCHAR2(32000) := 'ABCDEFGH';

   -- p2 -> __g_Bind.s[0]

   p2_ VARCHAR2(32000) := 'CF$_NEW_INVOICE_NO'||chr(31)||'123'||chr(30);

   -- p3 -> __lsAttr

   p3_ VARCHAR2(32000) := 'SERVER_CHANGE'||chr(31)||'FALSE'||chr(30);

   -- p4 -> __sAction

   p4_ VARCHAR2(32000) := 'DO';

BEGIN

     p3_:='';

     IFSAPP.CUSTOMER_ORDER_INV_ITEM_CFP.Cf_Modify__(p0_ , p1_ , p2_ , p3_ , p4_ );

     COMMIT;

END;

 

And surprisely, that works very well. About using an event, I can’t see how that would work, as me as a user, I can’t save any new data on IFS if the invoice is in preliminary  status...

Userlevel 7
Badge +22

Hi @romsar 

you are right. Using of APIs wont work in IFS.

It should only work with the IFSAPP user if you use an update statement.

Reply