DBA Data[Home] [Help]
Skip to content

PACKAGE BODY: APPS.MSC_WS_ATP

Source


1 PACKAGE BODY MSC_WS_ATP AS
2 /* $Header: MSCWATPB.pls 120.8 2011/03/11 09:24:35 aksaxena ship $  */
3 
4 -- =============================================================
5 -- Desc: Please see package spec file for description
6 -- =============================================================
7 PROCEDURE GetPromiseDate(
8     	  status                        OUT nocopy VARCHAR2,
9           InstanceId                    IN MscNumberArr ,
10           InventoryItemId               IN MscNumberArr,
11           InventoryItemName             IN MscChar40Arr,
12           SourceOrganizationId          IN MscNumberArr ,
13           SourceOrganizationCode        IN MscChar7Arr ,
14           OrganizationId                IN MscNumberArr ,
15           Identifier                    IN MscNumberArr ,
16           DemandSourceHeaderId          IN MscNumberArr ,
17           DemandSourceDelivery          IN MscChar30Arr ,
18           DemandSourceType              IN MscNumberArr ,
19           CallingModule                 IN MscNumberArr ,
20           CustomerId                    IN MscNumberArr ,
21           CustomerSiteId                IN MscNumberArr ,
22           QuantityOrdered               IN MscNumberArr ,
23           QuantityUOM                   IN MscChar3Arr ,
24           RequestedShipDate             IN MscDateArr,
25           RequestedArrivalDate          IN MscDateArr ,
26           LatestAcceptableDate          IN MscDateArr ,
27           DeliveryLeadTime              IN MscNumberArr ,
28           ShipMethod                    IN MscChar30Arr ,
29           DemandClass                   IN MscChar30Arr ,
30           ShipSetName                   IN MscChar30Arr ,
31           ArrivalSetName                IN MscChar30Arr ,
32           OverrideFlag                  IN MscChar1Arr ,
33           Action                        IN MscNumberArr ,
34           InsertFlag                    IN MscNumberArr ,
35           OEFlag                        IN MscChar1Arr ,
36           OrderNumber                   IN MscNumberArr ,
37           OldSourceOrganizationId       IN MscNumberArr ,
38           OldDemandClass                IN MscChar30Arr ,
39           Attribute01                   IN MscNumberArr ,
40           Attribute02                   IN MscNumberArr ,
41           CustomerCountry               IN MscChar60Arr ,
42           CustomerState                 IN MscChar60Arr ,
43           CustomerCity                  IN MscChar60Arr ,
44           CustomerPostalCode            IN MscChar60Arr ,
45           SubstitutionTypeCode          IN MscNumberArr ,
46           ReqItemDetailFlag             IN MscNumberArr ,
47           SalesRep                      IN MscChar255Arr ,
48           CustomerContact               IN MscChar255Arr ,
49           TopModelLineId                IN MscNumberArr ,
50           ATOParentModelLineId          IN MscNumberArr ,
51           ATOModelLineId                IN MscNumberArr ,
52           ParentLineId                  IN MscNumberArr ,
53           MatchItemId                   IN MscNumberArr ,
54           ConfigItemLineId              IN MscNumberArr ,
55           ValidationOrg                 IN MscNumberArr ,
56           ComponentSequenceID           IN MscNumberArr ,
57           ComponentCode                 IN MscChar255Arr ,
58           LineNumber                    IN MscChar80Arr ,
59           IncludedItemFlag              IN MscNumberArr ,
60           PickComponentsFlag            IN MscChar1Arr ,
61           CascadeModelInfoToComp        IN MscNumberArr ,
62           SequenceNumber                IN MscNumberArr ,
63           InternalOrgId                 IN MscNumberArr ,
64           PartySiteId                   IN MscNumberArr ,
65           PartOfSet                     IN MscChar1Arr ,
66 
67           InstanceIdOut                 OUT nocopy MscNumberArr,
68           InventoryItemIdOut            OUT nocopy MscNumberArr,
69           InventoryItemNameOut          OUT nocopy MscChar40Arr,
70           SourceOrganizationIdOut       OUT nocopy MscNumberArr,
71           SourceOrganizationCodeOut     OUT nocopy MscChar7Arr,
72           OrganizationIdOut             OUT nocopy MscNumberArr,
73           IdentifierOut                 OUT nocopy MscNumberArr,
74           DemandSourceHeaderIdOut       OUT nocopy MscNumberArr,
75           DemandSourceDeliveryOut       OUT nocopy MscChar30Arr,
76           DemandSourceTypeOut           OUT nocopy MscNumberArr,
77           CustomerIdOut                 OUT nocopy MscNumberArr,
78           CustomerSiteIdOut             OUT nocopy MscNumberArr,
79           QuantityOrderedOut            OUT nocopy MscNumberArr,
80           QuantityUOMOut                OUT nocopy MscChar3Arr,
81           RequestedShipDateOut          OUT nocopy MscDateArr,
82           RequestedArrivalDateOut       OUT nocopy MscDateArr,
83           LatestAcceptableDateOut       OUT nocopy MscDateArr,
84           DeliveryLeadTimeOut           OUT nocopy MscNumberArr,
85           ShipMethodOut                 OUT nocopy MscChar30Arr,
86           DemandClassOut                OUT nocopy MscChar30Arr,
87           ShipSetNameOut                OUT nocopy MscChar30Arr,
88           ArrivalSetNameOut             OUT nocopy MscChar30Arr,
89           OverrideFlagOut               OUT nocopy MscChar1Arr,
90           ShipDateOut                   OUT nocopy MscDateArr,
91           ArrivalDateOut                OUT nocopy MscDateArr,
92           AvailableQuantityOut          OUT nocopy MscNumberArr,
93           RequestedDateQuantityOut      OUT nocopy MscNumberArr,
94           GroupShipDateOut              OUT nocopy MscDateArr,
95           GroupArrivalDateOut           OUT nocopy MscDateArr,
96           AtpLeadTimeOut                OUT nocopy MscNumberArr,
97           ErrorCodeOut                  OUT nocopy MscNumberArr,
98           EndPeggingIdOut               OUT nocopy MscNumberArr,
99           OldSourceOrganizationIdOut    OUT nocopy MscNumberArr,
100           OldDemandClassOut             OUT nocopy MscChar30Arr,
101           RequestItemIdOut              OUT nocopy MscNumberArr,
102           ReqItemReqDateQtyOut          OUT nocopy MscNumberArr,
103           ReqItemAvailableDateOut       OUT nocopy MscDateArr,
104           ReqItemAvailableDateQtyOut    OUT nocopy MscNumberArr,
105           RequestItemNameOut            OUT nocopy MscChar40Arr,
106           OldInventoryItemIdOut         OUT nocopy MscNumberArr,
107           SubstFlagOut                  OUT nocopy MscNumberArr,
108           BaseModelIdOut                OUT nocopy MscNumberArr,
109           OssErrorCodeOut               OUT nocopy MscNumberArr,
110           MatchedItemNameOut            OUT nocopy MscChar255Arr,
111           CascadeModelInfoToCompOut     OUT nocopy MscNumberArr,
112           PlanIdOut                     OUT nocopy MscNumberArr,
113 		  SessionId                     IN NUMBER,
114           UserId                        IN NUMBER,
115 		  RespId                        IN NUMBER,
116 		  AppId                         IN NUMBER
117           ) is
118 
119           p_atp_table             MRP_ATP_PUB.ATP_Rec_Typ;
120           ln                      NUMBER;
121 		  l_session_id            NUMBER :=0;
122           i                       NUMBER :=0;
123           x_atp_table             MRP_ATP_PUB.ATP_Rec_Typ;
124           x_atp_supply_demand     MRP_ATP_PUB.ATP_Supply_Demand_Typ;
125           x_atp_period            MRP_ATP_PUB.ATP_Period_Typ;
126           x_atp_details           MRP_ATP_PUB.ATP_Details_Typ;
127           x_return_status         VARCHAR2(1);
128           x_msg_data              VARCHAR2(200);
129           x_msg_count             NUMBER;
130           temp_status           Varchar2(40);
131           atpUnknownError       EXCEPTION;
132           atpError              EXCEPTION;
133           atpParameterSizeError EXCEPTION;
134           atpProfilesError      EXCEPTION;
135           parameterName         VARCHAR2(40);
136           error_tracking_number NUMBER :=0;
137 
138 
139 BEGIN
140 
141           error_tracking_number         := 100;
142 
143           InstanceIdOut                 := MscNumberArr();
144           InventoryItemIdOut		:= MscNumberArr();
145           InventoryItemNameOut		:= MscChar40Arr();
146           SourceOrganizationIdOut	:= MscNumberArr();
147           SourceOrganizationCodeOut     := MscChar7Arr();
148           OrganizationIdOut		:= MscNumberArr();
149           IdentifierOut			:= MscNumberArr();
150           DemandSourceHeaderIdOut	:= MscNumberArr();
151           DemandSourceDeliveryOut	:= MscChar30Arr();
152           DemandSourceTypeOut		:= MscNumberArr();
153           CustomerIdOut			:= MscNumberArr();
154           CustomerSiteIdOut		:= MscNumberArr();
155           QuantityOrderedOut            := MscNumberArr();
156           QuantityUOMOut                := MscChar3Arr();
157           RequestedShipDateOut          := MscDateArr();
158           RequestedArrivalDateOut       := MscDateArr();
159           LatestAcceptableDateOut       := MscDateArr();
160           DeliveryLeadTimeOut           := MscNumberArr();
161           ShipMethodOut                 := MscChar30Arr();
162           DemandClassOut                := MscChar30Arr();
163           ShipSetNameOut                := MscChar30Arr();
164           ArrivalSetNameOut             := MscChar30Arr();
165           OverrideFlagOut               := MscChar1Arr();
166           ShipDateOut                   := MscDateArr();
167           ArrivalDateOut                := MscDateArr();
168           AvailableQuantityOut          := MscNumberArr();
169           RequestedDateQuantityOut      := MscNumberArr();
170           GroupShipDateOut              := MscDateArr();
171           GroupArrivalDateOut           := MscDateArr();
172           AtpLeadTimeOut                := MscNumberArr();
173           ErrorCodeOut                  := MscNumberArr();
174           EndPeggingIdOut               := MscNumberArr();
175           OldSourceOrganizationIdOut    := MscNumberArr();
176           OldDemandClassOut             := MscChar30Arr();
177           RequestItemIdOut              := MscNumberArr();
178           ReqItemReqDateQtyOut          := MscNumberArr();
179           ReqItemAvailableDateOut       := MscDateArr();
180           ReqItemAvailableDateQtyOut    := MscNumberArr();
181           RequestItemNameOut            := MscChar40Arr();
182           OldInventoryItemIdOut         := MscNumberArr();
183           SubstFlagOut                  := MscNumberArr();
184           BaseModelIdOut                := MscNumberArr();
185           OssErrorCodeOut               := MscNumberArr();
186           MatchedItemNameOut            := MscChar255Arr();
187           CascadeModelInfoToCompOut     := MscNumberArr();
188           PlanIdOut                     := MscNumberArr();
189 
190   ------------ STEP 1  verify first that all mandatory params are set!
191           ln := InventoryItemId.COUNT;
192 
193           IF ( InstanceId is NULL or InstanceId.COUNT =0) THEN
194                  parameterName := 'InstanceId';
195                  RAISE atpParameterSizeError;
196           END IF;
197           IF ( InventoryItemId is NULL or InventoryItemId.COUNT =0) THEN
198                  parameterName := 'InventoryItemId';
199                  RAISE atpParameterSizeError;
200           END IF;
201 
202           IF ( Identifier is NULL or Identifier.COUNT =0) THEN
203                  parameterName := 'Identifier';
204                  RAISE atpParameterSizeError;
205           END IF;
206 
207           IF ( CallingModule is NULL or CallingModule.COUNT =0) THEN
208                  parameterName := 'Calling Module';
209                  RAISE atpParameterSizeError;
210           END IF;
211 
212            IF ( QuantityOrdered is NULL or QuantityOrdered.COUNT =0) THEN
213                  parameterName := 'QuantityOrdered';
214                  RAISE atpParameterSizeError;
215           END IF;
216 
217           IF ( QuantityUOM is NULL or QuantityUOM.COUNT =0) THEN
218                  parameterName := 'QuantityUOM';
219                  RAISE atpParameterSizeError;
220           END IF;
221 
222            IF (RequestedShipDate.COUNT=0  AND  RequestedArrivalDate.COUNT =0 ) THEN
223                  parameterName := 'Required Ship Date';
224                  RAISE atpParameterSizeError;
225           END IF;
226 
227            IF ( Action is NULL or Action.COUNT =0) THEN
228                  parameterName := 'Action';
229                  RAISE atpParameterSizeError;
230           END IF;
231 
232  ----------STEP 2 -- apps initialize for system_administrator , just so we can get profiles values
233           fnd_global.apps_initialize(UserId, RespId, AppId);
234 
235           error_tracking_number:= 170;
236 
237 ----------- STEP 3 -- form  input parameters
238             MSC_SATP_FUNC.Extend_Atp (p_atp_table, x_return_status, ln);
239           error_tracking_number:= 1180;
240 
241            IF InstanceId is not NULL and InstanceId.Count <>0 THEN
242             FOR i IN 1 .. ln LOOP p_atp_table.Instance_Id(i) := InstanceId(i);   END LOOP ;
243            END IF;
244 
245 
246            IF InventoryItemId is not NULL and InventoryItemId.Count <>0 THEN
247                 FOR i IN 1 .. ln
248                 LOOP
249                 p_atp_table.Inventory_Item_Id (i) := InventoryItemId (i);
250                 END LOOP ;
251            END IF;
252 
253            IF InventoryItemName is not NULL and InventoryItemName.Count <>0 THEN
254                 FOR i IN 1 .. ln LOOP p_atp_table.Inventory_Item_Name (i) := InventoryItemName (i);   END LOOP ;
255            END IF;
256            IF SourceOrganizationId is not NULL and SourceOrganizationId.Count <>0 THEN
257                 FOR i IN 1 .. ln LOOP p_atp_table.Source_Organization_Id (i) := SourceOrganizationId (i);   END LOOP ;
258            END IF;
259            IF SourceOrganizationCode is not NULL and SourceOrganizationCode.Count <>0 THEN
260                 FOR i IN 1 .. ln LOOP p_atp_table.Source_Organization_Code (i) := SourceOrganizationCode (i);   END LOOP ;
261            END IF;
262            IF OrganizationId is not NULL and OrganizationId.Count <>0 THEN
263                 FOR i IN 1 .. ln LOOP p_atp_table.Organization_Id (i) := OrganizationId (i);   END LOOP ;
264            END IF;
265            IF Identifier is not NULL and Identifier.Count <>0 THEN
266                 FOR i IN 1 .. ln LOOP p_atp_table.Identifier (i) := Identifier (i);   END LOOP ;
267            END IF;
268            IF DemandSourceHeaderId is not NULL and DemandSourceHeaderId.Count <>0 THEN
269                 FOR i IN 1 .. ln LOOP p_atp_table.Demand_Source_Header_Id (i) := DemandSourceHeaderId (i);   END LOOP ;
270            END IF;
271            IF DemandSourceDelivery is not NULL and DemandSourceDelivery.Count <>0 THEN
272                 FOR i IN 1 .. ln LOOP p_atp_table.Demand_Source_Delivery (i) := DemandSourceDelivery (i);   END LOOP ;
273            END IF;
274            IF DemandSourceType is not NULL and DemandSourceType.Count <>0 THEN
275                 FOR i IN 1 .. ln LOOP p_atp_table.Demand_Source_Type (i) := DemandSourceType(i);   END LOOP ;
276            END IF;
277         -----------------------------------------------------------------------------------------------------------------
278 
279            IF CallingModule is not NULL and CallingModule.Count <>0 THEN
280                 FOR i IN 1 .. ln LOOP p_atp_table.Calling_Module  (i) := CallingModule(i);   END LOOP ;
281            END IF;
282            IF CustomerId is not NULL and CustomerId.Count <>0 THEN
283                 FOR i IN 1 .. ln LOOP p_atp_table.Customer_Id (i) := CustomerId(i);   END LOOP ;
284            END IF;
285            IF CustomerSiteId is not NULL and CustomerSiteId.Count <>0 THEN
286                 FOR i IN 1 .. ln LOOP p_atp_table.Customer_Site_Id (i) := CustomerSiteId(i);   END LOOP ;
287            END IF;
288            IF QuantityOrdered is not NULL and QuantityOrdered.Count <>0 THEN
289                 FOR i IN 1 .. ln LOOP p_atp_table.Quantity_Ordered (i) := QuantityOrdered(i);   END LOOP ;
290            END IF;
291            IF QuantityUOM is not NULL and QuantityUOM.Count <>0 THEN
292                 FOR i IN 1 .. ln LOOP p_atp_table.Quantity_UOM (i) := QuantityUOM(i);   END LOOP ;
293            END IF;
294            IF RequestedShipDate is not NULL and RequestedShipDate.Count <>0 THEN
295                 FOR i IN 1 .. ln LOOP p_atp_table.Requested_Ship_Date (i) := RequestedShipDate(i);   END LOOP ;
296            END IF;
297            IF RequestedArrivalDate is not NULL and RequestedArrivalDate.Count <>0 THEN
298                 FOR i IN 1 .. ln LOOP p_atp_table.Requested_Arrival_Date (i) := RequestedArrivalDate(i);   END LOOP ;
299            END IF;
300            IF LatestAcceptableDate is not NULL and LatestAcceptableDate.Count <>0 THEN
301                 FOR i IN 1 .. ln LOOP p_atp_table.Latest_Acceptable_Date (i) := LatestAcceptableDate(i);   END LOOP ;
302            END IF;
303            IF DeliveryLeadTime is not NULL and DeliveryLeadTime.Count <>0 THEN
304                 FOR i IN 1 .. ln LOOP p_atp_table.Delivery_Lead_Time (i) := DeliveryLeadTime(i);   END LOOP ;
305            END IF;
306            IF ShipMethod is not NULL and ShipMethod.Count <>0 THEN
307                 FOR i IN 1 .. ln LOOP p_atp_table.Ship_Method (i) := ShipMethod(i);   END LOOP ;
308            END IF;
309           -----------------------------------------------------------------------------------------------------------------
310 
311            IF DemandClass is not NULL and DemandClass.Count <>0 THEN
312                 FOR i IN 1 .. ln LOOP p_atp_table.Demand_Class (i) := DemandClass(i);   END LOOP ;
313            END IF;
314            IF ShipSetName is not NULL and ShipSetName.Count <>0 THEN
315                 FOR i IN 1 .. ln LOOP p_atp_table.Ship_Set_Name (i) := ShipSetName(i);   END LOOP ;
316            END IF;
317            IF ArrivalSetName is not NULL and ArrivalSetName.Count <>0 THEN
318                 FOR i IN 1 .. ln LOOP p_atp_table.Arrival_Set_Name (i) := ArrivalSetName(i);   END LOOP ;
319            END IF;
320            IF OverrideFlag is not NULL and OverrideFlag.Count <>0 THEN
321                 FOR i IN 1 .. ln LOOP p_atp_table.Override_Flag (i) := OverrideFlag(i);   END LOOP ;
322            END IF;
323            IF Action is not NULL and Action.Count <>0 THEN
324                 FOR i IN 1 .. ln LOOP p_atp_table.Action(i) := Action(i);   END LOOP ;
325            END IF;
326            IF InsertFlag is not NULL and InsertFlag.Count <>0 THEN
327                 FOR i IN 1 .. ln LOOP p_atp_table.Insert_Flag (i) := InsertFlag(i);   END LOOP ;
328            END IF;
329            IF OEFlag is not NULL and OEFlag.Count <>0 THEN
330                 FOR i IN 1 .. ln LOOP p_atp_table.OE_Flag (i) := OEFlag(i);   END LOOP ;
331            END IF;
332            IF OrderNumber is not NULL and OrderNumber.Count <>0 THEN
333                 FOR i IN 1 .. ln LOOP p_atp_table.Order_Number (i) := OrderNumber(i);   END LOOP ;
334            END IF;
335            IF OldSourceOrganizationId is not NULL and OldSourceOrganizationId.Count <>0 THEN
336                 FOR i IN 1 .. ln LOOP p_atp_table.Old_Source_Organization_Id (i) := OldSourceOrganizationId(i);   END LOOP ;
337            END IF;
338            IF OldDemandClass is not NULL and OldDemandClass.Count <>0 THEN
339                 FOR i IN 1 .. ln LOOP p_atp_table.Old_Demand_Class (i) := OldDemandClass(i);   END LOOP ;
340            END IF;
341            IF Attribute01 is not NULL and Attribute01.Count <>0 THEN
342                 FOR i IN 1 .. ln LOOP p_atp_table.Attribute_01 (i) := Attribute01(i);   END LOOP ;
343            END IF;
344            -----------------------------------------------------------------------------------------------------------------
345 
346            IF Attribute02 is not NULL and Attribute02.Count <>0 THEN
347                   FOR i IN 1 .. ln LOOP p_atp_table.Attribute_02 (i) := Attribute02(i);   END LOOP ;
348            END IF;
349            IF CustomerCountry is not NULL and CustomerCountry.Count <>0 THEN
350                 FOR i IN 1 .. ln LOOP p_atp_table.Customer_Country (i) := CustomerCountry(i);   END LOOP ;
351            END IF;
352            IF CustomerState is not NULL and CustomerState.Count <>0 THEN
353                 FOR i IN 1 .. ln LOOP p_atp_table.Customer_State (i) := CustomerState(i);   END LOOP ;
354            END IF;
355            IF CustomerCity is not NULL and CustomerCity.Count <>0 THEN
356                 FOR i IN 1 .. ln LOOP p_atp_table.Customer_City (i) := CustomerCity(i);   END LOOP ;
357            END IF;
358            IF CustomerPostalCode is not NULL and CustomerPostalCode.Count <>0 THEN
359                 FOR i IN 1 .. ln LOOP p_atp_table.Customer_Postal_Code (i) := CustomerPostalCode(i);   END LOOP ;
360            END IF;
361            IF SubstitutionTypeCode is not NULL and SubstitutionTypeCode.Count <>0 THEN
362                 FOR i IN 1 .. ln LOOP p_atp_table.Substitution_Typ_Code (i) := SubstitutionTypeCode(i);   END LOOP ;
363            END IF;
364            IF ReqItemDetailFlag is not NULL and ReqItemDetailFlag.Count <>0 THEN
365                 FOR i IN 1 .. ln LOOP p_atp_table.Req_Item_Detail_Flag (i) := ReqItemDetailFlag(i);   END LOOP ;
366            END IF;
367            IF SalesRep is not NULL and SalesRep.Count <>0 THEN
368                 FOR i IN 1 .. ln LOOP p_atp_table.Sales_Rep (i) := SalesRep(i);   END LOOP ;
369            END IF;
370            IF CustomerContact is not NULL and CustomerContact.Count <>0 THEN
371                 FOR i IN 1 .. ln LOOP p_atp_table.Customer_Contact (i) := CustomerContact(i);   END LOOP ;
372            END IF;
373            IF TopModelLineId is not NULL and TopModelLineId.Count <>0 THEN
374                 FOR i IN 1 .. ln LOOP p_atp_table.Top_Model_Line_Id (i) := TopModelLineId(i);   END LOOP ;
375            END IF;
376            IF ATOParentModelLineId is not NULL and ATOParentModelLineId.Count <>0 THEN
377                 FOR i IN 1 .. ln LOOP p_atp_table.ATO_Parent_Model_Line_Id (i) := ATOParentModelLineId(i);   END LOOP ;
378            END IF;
379            IF ATOModelLineId is not NULL and ATOModelLineId.Count <>0 THEN
380                 FOR i IN 1 .. ln LOOP p_atp_table.ATO_Model_Line_Id (i) := ATOModelLineId(i);   END LOOP ;
381            END IF;
382            IF ParentLineId is not NULL and ParentLineId.Count <>0 THEN
383                 FOR i IN 1 .. ln LOOP p_atp_table.Parent_Line_Id (i) := ParentLineId(i);   END LOOP ;
384            END IF;
385            IF MatchItemId is not NULL and MatchItemId.Count <>0 THEN
386                 FOR i IN 1 .. ln LOOP p_atp_table.Match_Item_Id (i) := MatchItemId(i);   END LOOP ;
387            END IF;
388            IF ConfigItemLineId is not NULL and ConfigItemLineId.Count <>0 THEN
389                 FOR i IN 1 .. ln LOOP p_atp_table.Config_Item_Line_Id (i) := ConfigItemLineId(i);   END LOOP ;
390            END IF;
391            IF ValidationOrg is not NULL and ValidationOrg.Count <>0 THEN
392                 FOR i IN 1 .. ln LOOP p_atp_table.Validation_Org (i) := ValidationOrg(i);   END LOOP ;
393            END IF;
394            IF ComponentSequenceID is not NULL and ComponentSequenceID.Count <>0 THEN
395                 FOR i IN 1 .. ln LOOP p_atp_table.Component_Sequence_ID (i) := ComponentSequenceID(i);   END LOOP ;
396            END IF;
397            IF ComponentCode is not NULL and ComponentCode.Count <>0 THEN
398                 FOR i IN 1 .. ln LOOP p_atp_table.Component_Code (i) := ComponentCode(i);   END LOOP ;
399            END IF;
400            IF LineNumber is not NULL and LineNumber.Count <>0 THEN
401                 FOR i IN 1 .. ln LOOP p_atp_table.Line_Number (i) := LineNumber(i);   END LOOP ;
402            END IF;
403            IF IncludedItemFlag is not NULL and IncludedItemFlag.Count <>0 THEN
404                 FOR i IN 1 .. ln LOOP p_atp_table.Included_Item_Flag (i) := IncludedItemFlag(i);   END LOOP ;
405            END IF;
406            -----------------------------------------------------------------------------------------------------------------
407 
408            IF PickComponentsFlag is not NULL and PickComponentsFlag.Count <>0 THEN
409                 FOR i IN 1 .. ln LOOP p_atp_table.Pick_Components_Flag (i) := PickComponentsFlag(i);   END LOOP ;
410            END IF;
411            IF CascadeModelInfoToComp is not NULL and CascadeModelInfoToComp.Count <>0 THEN
412                 FOR i IN 1 .. ln LOOP p_atp_table.Cascade_Model_Info_To_Comp (i) := CascadeModelInfoToComp(i);   END LOOP ;
413            END IF;
414            IF SequenceNumber is not NULL and SequenceNumber.Count <>0 THEN
415                 FOR i IN 1 .. ln LOOP p_atp_table.Sequence_Number (i) := SequenceNumber(i);   END LOOP ;
416            END IF;
417            IF InternalOrgId is not NULL and InternalOrgId.Count <>0 THEN
418                 FOR i IN 1 .. ln LOOP p_atp_table.Internal_Org_Id (i) := InternalOrgId(i);   END LOOP ;
419            END IF;
420            IF PartySiteId is not NULL and PartySiteId.Count <>0 THEN
421                 FOR i IN 1 .. ln LOOP p_atp_table.Party_Site_Id (i) := PartySiteId(i);   END LOOP ;
422            END IF;
423            IF PartOfSet is not NULL and PartOfSet.Count <>0 THEN
424                 FOR i IN 1 .. ln LOOP p_atp_table.Part_Of_Set (i) := PartOfSet(i);   END LOOP ;
425            END IF;
426            l_session_id := SessionId;
427          error_tracking_number:= 1190;
428 
429 ------- STEP 4 -- Call pl/sqlp ATP
430           MRP_ATP_PUB.Call_ATP(
431             l_session_id,
432             p_atp_table,
433             x_atp_table,
434             x_atp_supply_demand,
435             x_atp_period,
436             x_atp_details,
437             x_return_status,
438             x_msg_data,
439             x_msg_count);
440 
441             error_tracking_number:= 200;
442 
443             IF x_return_status = 'E'  THEN
444                 RAISE atpError;
445             END IF;
446 
447             IF x_return_status = 'U'  THEN
448                 RAISE atpUnknownError;
449             END IF;
450 
451 
452              -- otherwise x_return_status = 'S' for success
453 
454             ln := x_atp_table.Ship_Date.Count;
455             if ln = 0 then
456                 ln := x_atp_table.Arrival_Date.Count;
457             end if;
458 
459             error_tracking_number:= 2100;
460 
461 
462             IF ln > 0 THEN
463               InstanceIdOut.extend(ln);
464               FOR i IN 1 .. ln LOOP InstanceIdOut (i) := x_atp_table.Instance_Id(i);   END LOOP ;
465               InventoryItemIdOut.extend(ln);
466               FOR i IN 1 .. ln LOOP InventoryItemIdOut (i) := x_atp_table.Inventory_Item_Id(i);   END LOOP ;
467 
468               InventoryItemNameOut.extend(ln);
469               FOR i IN 1 .. ln LOOP InventoryItemNameOut (i) := x_atp_table.Inventory_Item_Name(i);   END LOOP ;
470               SourceOrganizationIdOut.extend(ln);
471               FOR i IN 1 .. ln LOOP SourceOrganizationIdOut (i) := x_atp_table.Source_Organization_Id(i);   END LOOP ;
472               SourceOrganizationCodeOut.extend(ln);
473               FOR i IN 1 .. ln LOOP SourceOrganizationCodeOut (i) := x_atp_table.Source_Organization_Code(i);   END LOOP ;
474 
475               error_tracking_number:= 2103;
476 
477               OrganizationIdOut.extend(ln);
478               FOR i IN 1 .. ln LOOP OrganizationIdOut (i) := x_atp_table.Organization_Id(i);   END LOOP ;
479               IdentifierOut.extend(ln);
480               FOR i IN 1 .. ln LOOP IdentifierOut (i) := x_atp_table.Identifier(i);   END LOOP ;
481               DemandSourceHeaderIdOut.extend(ln);
482               FOR i IN 1 .. ln LOOP DemandSourceHeaderIdOut (i) := x_atp_table.Demand_Source_Header_Id(i);   END LOOP ;
483               DemandSourceDeliveryOut.extend(ln);
484               FOR i IN 1 .. ln LOOP DemandSourceDeliveryOut (i) := x_atp_table.Demand_Source_Delivery(i);   END LOOP ;
485               DemandSourceTypeOut.extend(ln);
486               FOR i IN 1 .. ln LOOP DemandSourceTypeOut (i) := x_atp_table.Demand_Source_Type(i);   END LOOP ;
487 
488               error_tracking_number:= 2104;
489 
490               CustomerIdOut.extend(ln);
491               FOR i IN 1 .. ln LOOP CustomerIdOut (i) := x_atp_table.Customer_Id(i);   END LOOP ;
492               CustomerSiteIdOut.extend(ln);
493               FOR i IN 1 .. ln LOOP CustomerSiteIdOut (i) := x_atp_table.Customer_Site_Id(i);   END LOOP ;
494               QuantityOrderedOut.extend(ln);
495               FOR i IN 1 .. ln LOOP QuantityOrderedOut (i) := x_atp_table.Quantity_Ordered(i);   END LOOP ;
496               QuantityUOMOut.extend(ln);
497               FOR i IN 1 .. ln LOOP QuantityUOMOut (i) := x_atp_table.Quantity_UOM(i);   END LOOP ;
498               RequestedShipDateOut.extend(ln);
499               FOR i IN 1 .. ln LOOP RequestedShipDateOut (i) := x_atp_table.Requested_Ship_Date(i);   END LOOP ;
500               RequestedArrivalDateOut.extend(ln);
501               FOR i IN 1 .. ln LOOP RequestedArrivalDateOut (i) := x_atp_table.Requested_Arrival_Date(i);   END LOOP ;
502               LatestAcceptableDateOut.extend(ln);
503               FOR i IN 1 .. ln LOOP LatestAcceptableDateOut (i) := x_atp_table.Latest_Acceptable_Date(i);   END LOOP ;
504               DeliveryLeadTimeOut.extend(ln);
505               FOR i IN 1 .. ln LOOP DeliveryLeadTimeOut (i) := x_atp_table.Delivery_Lead_Time(i);   END LOOP ;
506               ShipMethodOut.extend(ln);
507               FOR i IN 1 .. ln LOOP ShipMethodOut (i) := x_atp_table.Ship_Method(i);   END LOOP ;
508               DemandClassOut.extend(ln);
509               FOR i IN 1 .. ln LOOP DemandClassOut (i) := x_atp_table.Demand_Class(i);   END LOOP ;
510 
511               error_tracking_number:= 2105;
512 
513               ShipSetNameOut.extend(ln);
514               FOR i IN 1 .. ln LOOP ShipSetNameOut (i) := x_atp_table.Ship_Set_Name(i);   END LOOP ;
515               ArrivalSetNameOut.extend(ln);
516               FOR i IN 1 .. ln LOOP ArrivalSetNameOut (i) :=x_atp_table. Arrival_Set_Name(i);   END LOOP ;
517               OverrideFlagOut.extend(ln);
518               FOR i IN 1 .. ln LOOP OverrideFlagOut (i) := x_atp_table.Override_Flag(i);   END LOOP ;
519               ShipDateOut.extend(ln);
520               FOR i IN 1 .. ln LOOP ShipDateOut (i) := x_atp_table.Ship_Date(i);   END LOOP ;
521               ArrivalDateOut.extend(ln);
522               FOR i IN 1 .. ln LOOP ArrivalDateOut (i) := x_atp_table.Arrival_Date(i);   END LOOP ;
523 
524               AvailableQuantityOut.extend(ln);
525               FOR i IN 1 .. ln LOOP AvailableQuantityOut (i) := x_atp_table.Available_Quantity(i);   END LOOP ;
526               RequestedDateQuantityOut.extend(ln);
527               FOR i IN 1 .. ln LOOP RequestedDateQuantityOut (i) := x_atp_table.Requested_Date_Quantity(i);   END LOOP ;
528               GroupShipDateOut.extend(ln);
529               FOR i IN 1 .. ln LOOP GroupShipDateOut (i) := x_atp_table.Group_Ship_Date(i);   END LOOP ;
530               GroupArrivalDateOut.extend(ln);
531               FOR i IN 1 .. ln LOOP GroupArrivalDateOut (i) := x_atp_table.Group_Arrival_Date(i);   END LOOP ;
532 
533               error_tracking_number:= 2106;
534 
535               AtpLeadTimeOut.extend(ln);
536               FOR i IN 1 .. ln LOOP AtpLeadTimeOut (i) := x_atp_table.Atp_Lead_Time(i);   END LOOP ;
537               ErrorCodeOut.extend(ln);
538               FOR i IN 1 .. ln LOOP ErrorCodeOut (i) := x_atp_table.Error_Code(i);   END LOOP ;
539               EndPeggingIdOut.extend(ln);
540               FOR i IN 1 .. ln LOOP EndPeggingIdOut (i) :=x_atp_table.End_Pegging_Id(i);   END LOOP ;
541               OldSourceOrganizationIdOut.extend(ln);
542               FOR i IN 1 .. ln LOOP OldSourceOrganizationIdOut (i) := x_atp_table.Old_Source_Organization_Id(i);   END LOOP ;
543               OldDemandClassOut.extend(ln);
544               FOR i IN 1 .. ln LOOP OldDemandClassOut (i) := x_atp_table.Old_Demand_Class(i);   END LOOP ;
545               RequestItemIdOut.extend(ln);
546               FOR i IN 1 .. ln LOOP RequestItemIdOut (i) := x_atp_table.Request_Item_Id(i);   END LOOP ;
547               ReqItemReqDateQtyOut.extend(ln);
548               FOR i IN 1 .. ln LOOP ReqItemReqDateQtyOut (i) := x_atp_table.Req_Item_Req_Date_Qty(i);   END LOOP ;
549               ReqItemAvailableDateOut.extend(ln);
550               FOR i IN 1 .. ln LOOP ReqItemAvailableDateOut (i) := x_atp_table.req_item_available_date(i);   END LOOP ;
551               ReqItemAvailableDateQtyOut.extend(ln);
552               FOR i IN 1 .. ln LOOP ReqItemAvailableDateQtyOut (i) := x_atp_table.Req_Item_Available_Date_Qty(i);   END LOOP ;
553               RequestItemNameOut.extend(ln);
554               FOR i IN 1 .. ln LOOP RequestItemNameOut (i) := x_atp_table.Request_Item_Name(i);   END LOOP ;
555               OldInventoryItemIdOut.extend(ln);
556               FOR i IN 1 .. ln LOOP OldInventoryItemIdOut (i) := x_atp_table.Old_Inventory_Item_Id(i);   END LOOP ;
557 
558               error_tracking_number:= 2110;
559 
560               SubstFlagOut.extend(ln);
561               FOR i IN 1 .. ln LOOP SubstFlagOut (i) := x_atp_table.Subst_Flag(i);   END LOOP ;
562               BaseModelIdOut.extend(ln);
563               FOR i IN 1 .. ln LOOP BaseModelIdOut (i) := x_atp_table.Base_Model_Id(i);   END LOOP ;
564               OssErrorCodeOut.extend(ln);
565               FOR i IN 1 .. ln LOOP OssErrorCodeOut (i) := x_atp_table.Oss_Error_Code(i);   END LOOP ;
566               MatchedItemNameOut.extend(ln);
567               FOR i IN 1 .. ln LOOP MatchedItemNameOut (i) := x_atp_table.Matched_Item_Name(i);   END LOOP ;
568               CascadeModelInfoToCompOut.extend(ln);
569               FOR i IN 1 .. ln LOOP CascadeModelInfoToCompOut (i) := x_atp_table.Cascade_Model_Info_To_Comp(i);   END LOOP ;
570               PlanIdOut.extend(ln);
571               FOR i IN 1 .. ln LOOP PlanIdOut (i) := x_atp_table.Plan_Id(i);   END LOOP ;
572 
573           END IF;
574 
575           error_tracking_number:= 2200;
576           status := 'SUCCESS';
577 
578 
579     EXCEPTION
580     WHEN atpParameterSizeError THEN
581         status := 'ERROR_WRONG ARRAY_SIZE IN ' || parameterName;
582         RETURN;
583     WHEN atpError THEN
584         status := 'ERROR_ATP';
585         RETURN;
586     WHEN atpProfilesError THEN
587         status := 'ERROR_PROFILES_FOR_USER_OR_RESPID_NOT_SET';
588         RETURN;
589     WHEN others THEN
590         status := 'ERROR_UNEXPECTED_'||error_tracking_number;
591         RETURN;
592 
593 END GetPromiseDate;
594 
595 
596 
597  PROCEDURE GetPromiseDate_Public(
598  	  status                        OUT nocopy VARCHAR2,
599            UserName               IN VARCHAR2,
600  	  RespName     IN VARCHAR2,
601  	  RespApplName IN VARCHAR2,
602  	  SecurityGroupName      IN VARCHAR2,
603  	  Language            IN VARCHAR2,
604            InstanceId                    IN MscNumberArr ,
605            InventoryItemId               IN MscNumberArr,
606            InventoryItemName             IN MscChar40Arr,
607            SourceOrganizationId          IN MscNumberArr ,
608            SourceOrganizationCode        IN MscChar7Arr ,
609            OrganizationId                IN MscNumberArr ,
610            Identifier                    IN MscNumberArr ,
611            DemandSourceHeaderId          IN MscNumberArr ,
612            DemandSourceDelivery          IN MscChar30Arr ,
613            DemandSourceType              IN MscNumberArr ,
614            CallingModule                 IN MscNumberArr ,
615            CustomerId                    IN MscNumberArr ,
616            CustomerSiteId                IN MscNumberArr ,
617            QuantityOrdered               IN MscNumberArr ,
618            QuantityUOM                   IN MscChar3Arr ,
619            RequestedShipDate             IN MscDateArr,
620            RequestedArrivalDate          IN MscDateArr ,
621            LatestAcceptableDate          IN MscDateArr ,
622            DeliveryLeadTime              IN MscNumberArr ,
623            ShipMethod                    IN MscChar30Arr ,
624            DemandClass                   IN MscChar30Arr ,
625            ShipSetName                   IN MscChar30Arr ,
626            ArrivalSetName                IN MscChar30Arr ,
627            OverrideFlag                  IN MscChar1Arr ,
628            Action                        IN MscNumberArr ,
629            InsertFlag                    IN MscNumberArr ,
630            OEFlag                        IN MscChar1Arr ,
631            OrderNumber                   IN MscNumberArr ,
632            OldSourceOrganizationId       IN MscNumberArr ,
633            OldDemandClass                IN MscChar30Arr ,
634            Attribute01                   IN MscNumberArr ,
635            Attribute02                   IN MscNumberArr ,
636            CustomerCountry               IN MscChar60Arr ,
637            CustomerState                 IN MscChar60Arr ,
638            CustomerCity                  IN MscChar60Arr ,
639            CustomerPostalCode            IN MscChar60Arr ,
640            SubstitutionTypeCode          IN MscNumberArr ,
641            ReqItemDetailFlag             IN MscNumberArr ,
642            SalesRep                      IN MscChar255Arr ,
643            CustomerContact               IN MscChar255Arr ,
644            TopModelLineId                IN MscNumberArr ,
645            ATOParentModelLineId          IN MscNumberArr ,
646            ATOModelLineId                IN MscNumberArr ,
647            ParentLineId                  IN MscNumberArr ,
648            MatchItemId                   IN MscNumberArr ,
649            ConfigItemLineId              IN MscNumberArr ,
650            ValidationOrg                 IN MscNumberArr ,
651            ComponentSequenceID           IN MscNumberArr ,
652            ComponentCode                 IN MscChar255Arr ,
653            LineNumber                    IN MscChar80Arr ,
654            IncludedItemFlag              IN MscNumberArr ,
655            PickComponentsFlag            IN MscChar1Arr ,
656            CascadeModelInfoToComp        IN MscNumberArr ,
657            SequenceNumber                IN MscNumberArr ,
658            InternalOrgId                 IN MscNumberArr ,
659            PartySiteId                   IN MscNumberArr ,
660            PartOfSet                     IN MscChar1Arr ,
661 
662            InstanceIdOut                 OUT nocopy MscNumberArr,
663            InventoryItemIdOut            OUT nocopy MscNumberArr,
664            InventoryItemNameOut          OUT nocopy MscChar40Arr,
665            SourceOrganizationIdOut       OUT nocopy MscNumberArr,
666            SourceOrganizationCodeOut     OUT nocopy MscChar7Arr,
667            OrganizationIdOut             OUT nocopy MscNumberArr,
668            IdentifierOut                 OUT nocopy MscNumberArr,
669            DemandSourceHeaderIdOut       OUT nocopy MscNumberArr,
670            DemandSourceDeliveryOut       OUT nocopy MscChar30Arr,
671            DemandSourceTypeOut           OUT nocopy MscNumberArr,
672            CustomerIdOut                 OUT nocopy MscNumberArr,
673            CustomerSiteIdOut             OUT nocopy MscNumberArr,
674            QuantityOrderedOut            OUT nocopy MscNumberArr,
675            QuantityUOMOut                OUT nocopy MscChar3Arr,
676            RequestedShipDateOut          OUT nocopy MscDateArr,
677            RequestedArrivalDateOut       OUT nocopy MscDateArr,
678            LatestAcceptableDateOut       OUT nocopy MscDateArr,
679            DeliveryLeadTimeOut           OUT nocopy MscNumberArr,
680            ShipMethodOut                 OUT nocopy MscChar30Arr,
681            DemandClassOut                OUT nocopy MscChar30Arr,
682            ShipSetNameOut                OUT nocopy MscChar30Arr,
683            ArrivalSetNameOut             OUT nocopy MscChar30Arr,
684            OverrideFlagOut               OUT nocopy MscChar1Arr,
685            ShipDateOut                   OUT nocopy MscDateArr,
686            ArrivalDateOut                OUT nocopy MscDateArr,
687            AvailableQuantityOut          OUT nocopy MscNumberArr,
688            RequestedDateQuantityOut      OUT nocopy MscNumberArr,
689            GroupShipDateOut              OUT nocopy MscDateArr,
690            GroupArrivalDateOut           OUT nocopy MscDateArr,
691            AtpLeadTimeOut                OUT nocopy MscNumberArr,
692            ErrorCodeOut                  OUT nocopy MscNumberArr,
693            EndPeggingIdOut               OUT nocopy MscNumberArr,
694            OldSourceOrganizationIdOut    OUT nocopy MscNumberArr,
695            OldDemandClassOut             OUT nocopy MscChar30Arr,
696            RequestItemIdOut              OUT nocopy MscNumberArr,
697            ReqItemReqDateQtyOut          OUT nocopy MscNumberArr,
698            ReqItemAvailableDateOut       OUT nocopy MscDateArr,
699            ReqItemAvailableDateQtyOut    OUT nocopy MscNumberArr,
700            RequestItemNameOut            OUT nocopy MscChar40Arr,
701            OldInventoryItemIdOut         OUT nocopy MscNumberArr,
702            SubstFlagOut                  OUT nocopy MscNumberArr,
703            BaseModelIdOut                OUT nocopy MscNumberArr,
704            OssErrorCodeOut               OUT nocopy MscNumberArr,
705            MatchedItemNameOut            OUT nocopy MscChar255Arr,
706            CascadeModelInfoToCompOut     OUT nocopy MscNumberArr,
707            PlanIdOut                     OUT nocopy MscNumberArr,
708 		   SessionId                     IN NUMBER,
709            UserId                        IN NUMBER,
710 		   RespId                        IN NUMBER,
711 		   AppId                         IN NUMBER
712            )AS
713  		     error_tracking_num number;
714 
715 BEGIN
716           InstanceIdOut                 := MscNumberArr();
717           InventoryItemIdOut		:= MscNumberArr();
718           InventoryItemNameOut		:= MscChar40Arr();
719           SourceOrganizationIdOut	:= MscNumberArr();
720           SourceOrganizationCodeOut     := MscChar7Arr();
721           OrganizationIdOut		:= MscNumberArr();
722           IdentifierOut			:= MscNumberArr();
723           DemandSourceHeaderIdOut	:= MscNumberArr();
724           DemandSourceDeliveryOut	:= MscChar30Arr();
725           DemandSourceTypeOut		:= MscNumberArr();
726           CustomerIdOut			:= MscNumberArr();
727           CustomerSiteIdOut		:= MscNumberArr();
728           QuantityOrderedOut            := MscNumberArr();
729           QuantityUOMOut                := MscChar3Arr();
730           RequestedShipDateOut          := MscDateArr();
731           RequestedArrivalDateOut       := MscDateArr();
732           LatestAcceptableDateOut       := MscDateArr();
733           DeliveryLeadTimeOut           := MscNumberArr();
734           ShipMethodOut                 := MscChar30Arr();
735           DemandClassOut                := MscChar30Arr();
736           ShipSetNameOut                := MscChar30Arr();
737           ArrivalSetNameOut             := MscChar30Arr();
738           OverrideFlagOut               := MscChar1Arr();
739           ShipDateOut                   := MscDateArr();
740           ArrivalDateOut                := MscDateArr();
741           AvailableQuantityOut          := MscNumberArr();
742           RequestedDateQuantityOut      := MscNumberArr();
743           GroupShipDateOut              := MscDateArr();
744           GroupArrivalDateOut           := MscDateArr();
745           AtpLeadTimeOut                := MscNumberArr();
746           ErrorCodeOut                  := MscNumberArr();
747           EndPeggingIdOut               := MscNumberArr();
748           OldSourceOrganizationIdOut    := MscNumberArr();
749           OldDemandClassOut             := MscChar30Arr();
750           RequestItemIdOut              := MscNumberArr();
751           ReqItemReqDateQtyOut          := MscNumberArr();
752           ReqItemAvailableDateOut       := MscDateArr();
753           ReqItemAvailableDateQtyOut    := MscNumberArr();
754           RequestItemNameOut            := MscChar40Arr();
755           OldInventoryItemIdOut         := MscNumberArr();
756           SubstFlagOut                  := MscNumberArr();
757           BaseModelIdOut                := MscNumberArr();
758           OssErrorCodeOut               := MscNumberArr();
759           MatchedItemNameOut            := MscChar255Arr();
760           CascadeModelInfoToCompOut     := MscNumberArr();
761           PlanIdOut                     := MscNumberArr();
762  		      error_tracking_num :=2010;
763 
764  		      GetPromiseDate(  		Status,
765                                              	InstanceId  ,
766                                              	InventoryItemId,
767                                              	InventoryItemName ,
768                                              	SourceOrganizationId ,
769                                              	SourceOrganizationCode ,
770                                              	OrganizationId  ,
771                                              	Identifier  ,
772                                              	DemandSourceHeaderId  ,
773                                               	DemandSourceDelivery  ,
774                                              	DemandSourceType ,
775                                              	CallingModule ,
776                                              	CustomerId ,
777            					CustomerSiteId,
778            					QuantityOrdered ,
779            					QuantityUOM ,
780            					RequestedShipDate,
781            					RequestedArrivalDate,
782            					LatestAcceptableDate ,
783            					DeliveryLeadTime,
784            					ShipMethod,
785            					DemandClass ,
786            					ShipSetName  ,
787            					ArrivalSetName  ,
788            					OverrideFlag ,
789            					Action  ,
790            					InsertFlag  ,
791            					OEFlag  ,
792            					OrderNumber ,
793            					OldSourceOrganizationId,
794            					OldDemandClass ,
795            					Attribute01  ,
796            					Attribute02,
797            					CustomerCountry  ,
798            					CustomerState  ,
799            					CustomerCity ,
800            					CustomerPostalCode ,
801            					SubstitutionTypeCode ,
802           					ReqItemDetailFlag  ,
803            					SalesRep ,
804            					CustomerContact  ,
805            					TopModelLineId ,
806            					ATOParentModelLineId ,
807            					ATOModelLineId ,
808            					ParentLineId ,
809            					MatchItemId  ,
810            					ConfigItemLineId ,
811            					ValidationOrg ,
812            					ComponentSequenceID ,
813            					ComponentCode ,
814            					LineNumber ,
815            					IncludedItemFlag  ,
816            					PickComponentsFlag ,
817            					CascadeModelInfoToComp  ,
818            					SequenceNumber,
819           				        InternalOrgId ,
820            					PartySiteId ,
821            					PartOfSet ,
822 
823            					InstanceIdOut,
824            					InventoryItemIdOut,
825            					InventoryItemNameOut,
826            					SourceOrganizationIdOut ,
827            					SourceOrganizationCodeOut,
828            					OrganizationIdOut ,
829            					IdentifierOut,
830            					DemandSourceHeaderIdOut ,
831            					DemandSourceDeliveryOut,
832            					DemandSourceTypeOut,
833            					CustomerIdOut ,
834            					CustomerSiteIdOut,
835            					QuantityOrderedOut,
836            					QuantityUOMOut ,
837            					RequestedShipDateOut   ,
838            					RequestedArrivalDateOut ,
839            					LatestAcceptableDateOut,
840            					DeliveryLeadTimeOut ,
841            					ShipMethodOut ,
842            					DemandClassOut,
843            					ShipSetNameOut ,
844            					ArrivalSetNameOut,
845            					OverrideFlagOut,
846            					ShipDateOut ,
847            					ArrivalDateOut ,
848            					AvailableQuantityOut ,
849            					RequestedDateQuantityOut,
850            					GroupShipDateOut,
851            					GroupArrivalDateOut,
852            					AtpLeadTimeOut ,
853            					ErrorCodeOut ,
854            					EndPeggingIdOut ,
855            					OldSourceOrganizationIdOut,
856            					OldDemandClassOut,
857            					RequestItemIdOut,
858            					ReqItemReqDateQtyOut ,
859            					ReqItemAvailableDateOut,
860            					ReqItemAvailableDateQtyOut,
861            					RequestItemNameOut,
862            					OldInventoryItemIdOut ,
863            					SubstFlagOut ,
864            					BaseModelIdOut,
865            					OssErrorCodeOut,
866            					MatchedItemNameOut ,
867            					CascadeModelInfoToCompOut,
868            					PlanIdOut,
869                             SessionId,
870 							UserId,
871 							RespId,
872 							AppId);
873 
874 
875 
876  		         EXCEPTION
877  		         WHEN others THEN
878  		            status := 'ERROR_UNEXPECTED_'||error_tracking_num;
879 
880  		            return;
881  END   GetPromiseDate_Public;
882 
883 END MSC_WS_ATP;