Often in the NotifyMe mobile app, the user is presented with an empty notification screen, when we know for sure there are requisitions and/or purchase orders that are waiting to be authorized by the user.
When we check the touch apps log file, we see the following error:
Error when synchronizing entity FndStreamExtension: Failed executing query (ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "IFSAPP.PUR_REQ_NOTIFICATION_API", line 599
ORA-06512: at "IFSAPP.PUR_REQ_NOTIFICATION_API", line 599
ORA-06512: at "IFSAPP.PUR_REQ_NOTIFICATION_API", line 633
ORA-06512: at line 1
ORA-06512: at "IFSAPP.NOTIFY_ME_UTILS_API", line 401
ORA-06512: at "IFSAPP.NOTIFY_ME_UTILS_API", line 406
ORA-06512: at "IFSAPP.NOTIFY_ME_UTILS_API", line 347
ORA-06512: at "IFSAPP.NOTIFY_ME_UTILS_API", line 358)
When I check the API on the lines indicated, it seems to fail when assigning a value to the "detail_line_" variable, which is defined as varchar(2000).
FOR line_rec_ IN purchase_order_details(notification_rec_.order_no) LOOP
detail_line_ :=
line_rec_.line_no || ',' ||
Mark_Down_Utils_API.Add_Hyphenated_Strings(line_rec_.part_no, line_rec_.description) ||','||
NVL(line_rec_.vendor_name, ' ') || ','||
Mark_Down_Utils_API.Add_Hyphenated_Strings(line_rec_.quantity, line_rec_.unit) || ','||
line_rec_.planned_delivery_date || ','||
notification_rec_.currency_code || ' ' || line_rec_.total_amount || ','||
notification_rec_.currency_code || ' ' || line_rec_.total_gross_amount || ','||
notification_rec_.contract;
I suspect the compound value it is trying to assign to the variable is more than 2000 characters, which results in the ORA-06502 error.
Is it possible to increase the character limit on the detail_line_ variable, maybe to 4000?
For both PUR_REQ_NOTIFICATION_API and .PUR_ORD_NOTIFICATION_API, so that the NotifyMe app can work with bigger line item descriptions coming from the purchase orders and requisitions? A limit of 2000 characters for the combination of line number + item description + vendor name + quantity + unit + delivery date + currency cod + total amount + gross amount + contract seems too small.