Skip to main content
Solved

Company Error in Custom PL/SQL Block on FA_OBJECT

  • January 24, 2023
  • 3 replies
  • 257 views

Forum|alt.badge.img+2

Hello community experts,

 

I have a custom block on frmObject_Ext that works when I am running manually on PL/SQL developer, however is not working in the IFS Apps. I am receiving below error. &COMPANY is not fetched from user window. 

 

 

This is my custom block

1DECLARE
2 company_ VARCHAR2(32000) := &COMPANY;
3 object_ VARCHAR2(32000) := &OBJECT_ID;
4 code_a_ VARCHAR2(32000) := &ACCOUNT;
5 invoice_no_ VARCHAR2(32000) := NULL;
6 amount_ NUMBER := NULL;
7 old_info_ VARCHAR2(32000) := NULL;
8 old_objid_ VARCHAR2(32000) := NULL;
9 old_objversion_ VARCHAR2(32000) := NULL;
10 new_info_ VARCHAR2(32000) := NULL;
11 new_objid_ VARCHAR2(32000) := NULL;
12 new_objversion_ VARCHAR2(32000) := NULL;
13 attr_ VARCHAR2(32000) := NULL;
14 action_ VARCHAR2(32000) := 'DO';
15
16 CURSOR c1 IS
17 select p.invoice_no, sum(p.dom_amount)
18 from ifsapp.MAN_SUPP_INVOICE_POSTINGS p
19 where company = company_
20 and code_i = object_
21 and code_a = code_a_
22 and ifsapp.invoice_api.get_objstate(p.company, p.INVOICE_ID) != 'Cancelled'
23 group by p.invoice_no;
24
25 CURSOR c2 IS
26 select fa.objid, fa.objversion
27 from ifsapp.FA_OBJECT_PROPERTY fa
28 where fa.company = company_
29 and fa.object_id = object_
30 and fa.property_code = 'FA_INVOICE';
31
32BEGIN
33
34 OPEN c2;
35 LOOP
36 FETCH c2
37 INTO old_objid_, old_objversion_;
38 EXIT WHEN c2%NOTFOUND OR c2%NOTFOUND IS NULL;
39
40 ifsapp.FA_OBJECT_PROPERTY_API.REMOVE__(old_info_,
41 old_objid_,
42 old_objversion_,
43 action_);
44 end loop;
45 CLOSE c2;
46
47 OPEN c1;
48 LOOP
49 FETCH c1
50 INTO invoice_no_, amount_;
51 EXIT WHEN c1%NOTFOUND OR c1%NOTFOUND IS NULL;
52
53 client_sys.Clear_Attr(attr_);
54 client_sys.Add_To_Attr('COMPANY', company_, attr_);
55 client_sys.Add_To_Attr('OBJECT_ID', object_, attr_);
56 client_sys.Add_To_Attr('PROPERTY_CODE', 'FA_INVOICE', attr_);
57 client_sys.Add_To_Attr('VALUE_STRING', 'Invoice No: ' || invoice_no_, attr_);
58 client_sys.Add_To_Attr('REFERENCE_ID', amount_, attr_);
59
60 ifsapp.FA_OBJECT_PROPERTY_API.NEW__(new_info_,
61 new_objid_,
62 new_objversion_,
63 attr_,
64 action_);
65
66 END LOOP;
67 CLOSE c1;
68END;
69

I debugged the error and I can see that company is not there. Any idea what could be reason?

I am on IFS10 Update 14

Thank you

 

1-- Context: frmObject_Ext
2
3DECLARE
4 -- p0 -> __g_Bind.s[0]
5 p0_ VARCHAR2(32000) := 'FA26000005';
6
7 -- p1 -> __g_Bind.s[1]
8 p1_ VARCHAR2(32000) := '17400000';
9
10BEGIN
11 IFSAPP.Log_SYS.Init_Debug_Session_('en');
12
13DECLARE
14 company_ VARCHAR2(32000) := &COMPANY;
15
16 object_ VARCHAR2(32000) := p0_ ;
17
18 code_a_ VARCHAR2(32000) := p1_ ;
19
20 invoice_no_ VARCHAR2(32000) := NULL;
21
22 amount_ NUMBER := NULL;
23
24 old_info_ VARCHAR2(32000) := NULL;
25
26 old_objid_ VARCHAR2(32000) := NULL;
27
28 old_objversion_ VARCHAR2(32000) := NULL;
29
30 new_info_ VARCHAR2(32000) := NULL;
31
32 new_objid_ VARCHAR2(32000) := NULL;
33
34 new_objversion_ VARCHAR2(32000) := NULL;
35
36 attr_ VARCHAR2(32000) := NULL;
37
38 action_ VARCHAR2(32000) := 'DO';
39
40
41 CURSOR c1 IS
42 select p.invoice_no, sum(p.dom_amount)
43 from ifsapp.MAN_SUPP_INVOICE_POSTINGS p
44 where company = company_
45 and code_i = object_
46 and code_a = code_a_
47 and ifsapp.invoice_api.get_objstate(p.company, p.INVOICE_ID) != 'Cancelled'
48 group by p.invoice_no;
49
50
51 CURSOR c2 IS
52 select fa.objid, fa.objversion
53 from ifsapp.FA_OBJECT_PROPERTY fa
54 where fa.company = company_
55 and fa.object_id = object_
56 and fa.property_code = 'FA_INVOICE';
57
58
59BEGIN
60
61
62 OPEN c2;
63
64 LOOP
65 FETCH c2
66 INTO old_objid_, old_objversion_;
67
68 EXIT WHEN c2%NOTFOUND OR c2%NOTFOUND IS NULL;
69
70
71 ifsapp.FA_OBJECT_PROPERTY_API.REMOVE__(old_info_,
72 old_objid_,
73 old_objversion_,
74 action_);
75
76 end loop;
77
78 CLOSE c2;
79
80
81 OPEN c1;
82
83 LOOP
84 FETCH c1
85 INTO invoice_no_, amount_;
86
87 EXIT WHEN c1%NOTFOUND OR c1%NOTFOUND IS NULL;
88
89
90 client_sys.Clear_Attr(attr_);
91
92 client_sys.Add_To_Attr('COMPANY', company_, attr_);
93
94 client_sys.Add_To_Attr('OBJECT_ID', object_, attr_);
95
96 client_sys.Add_To_Attr('PROPERTY_CODE', 'FA_INVOICE', attr_);
97
98 client_sys.Add_To_Attr('VALUE_STRING', 'Invoice No: ' || invoice_no_, attr_);
99
100 client_sys.Add_To_Attr('REFERENCE_ID', amount_, attr_);
101
102
103 ifsapp.FA_OBJECT_PROPERTY_API.NEW__(new_info_,
104 new_objid_,
105 new_objversion_,
106 attr_,
107 action_);
108
109
110 END LOOP;
111
112 CLOSE c1;
113
114END;
115
116commit;
117
118
119WHEN Error_SYS.Err_Security_Checkpoint THEN
120raise;
121
122
123
124raise;
125
126 ----------------------------------
127 ---Dbms_Output Section---
128 ----------------------------------
129 Dbms_Output.Put_Line('p0_ -> __g_Bind.s[0]');
130 Dbms_Output.Put_Line(p0_);
131 Dbms_Output.New_Line;
132
133 Dbms_Output.Put_Line('p1_ -> __g_Bind.s[1]');
134 Dbms_Output.Put_Line(p1_);
135 ----------------------------------
136
137END;
138

 

Best answer by Tomas Ruderfelt

Yes it seems like it can’t find the column for &COMPANY.

I replaced &COMPANY with :i_hWndFrame.frmObject.i_sCompany and then I get the company value.

I don’t have an Ext layer in that window so you might try with :i_hWndFrame.frmObject_Ext.i_sCompany

or :i_hWndFrame.frmObject.i_sCompany

View original
Did this topic help you find an answer to your question?

3 replies

Forum|alt.badge.img+10
  • Hero (Customer)
  • 126 replies
  • January 25, 2023

That would seem to indicate that the window you are on does not have a column for COMPANY in the main view. 

Where are you entering this block?

If you want the system default Company value I believe you need to use #COMPANY. 


Forum|alt.badge.img+21
  • Superhero (Employee)
  • 500 replies
  • Answer
  • January 26, 2023

Yes it seems like it can’t find the column for &COMPANY.

I replaced &COMPANY with :i_hWndFrame.frmObject.i_sCompany and then I get the company value.

I don’t have an Ext layer in that window so you might try with :i_hWndFrame.frmObject_Ext.i_sCompany

or :i_hWndFrame.frmObject.i_sCompany


Forum|alt.badge.img+2
  • Author
  • Do Gooder (Customer)
  • 3 replies
  • January 26, 2023

Hi @mwilson  and @Tomas Ruderfelt 

 

Actually company is available on screen and on view in DB. But looks like it does not fetch properly. 

I tried #COMPANY but it did not work for me. Maybe I entered it wrongly but I need company from the fixed asset not the user default company. Thank you for proposal.

 

This ‘:i_hWndFrame.frmObject.i_sCompany’ worked for me and it fetches the values now.

 

Thank you again

 

 


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings