Tuesday 12 June 2012

Dest_Subinventory is an field which has to display when “Transaction Nature” IN Details tab value is “%SPARES” in PO Form.

 Dest_Subinventory is an field which has to display when “Transaction Nature” IN Details tab value is “%SPARES”.

Restricting Dest_Subinventory to display on screen. (This requirement is not to display the Dest_Subinventory when we open the Requisition Form)

To Restrict the Dest_Subinventory field
Condition tab
Trigger Event -  WHEN-NEW-FORM-INSTANCE


Actions tab

Seq          Type        Description                                                                                              Language
1              Property  Subinventory not Displayed(You can give any meaningful)                   All

Object Type             Item
Target Object           LINES.DEST_SUBINVENTORY
Property Name        DISPLAYED
Value                       FALSE


If Transaction_reason in (‘IMPORT – SPARES’,’LOCAL – SPARES’) THEN DEST_SUBINVENTORY SHOULD BE Displayed and the value should be ‘SPARES’
Condition Tab
Trigger Event – WHEN-NEW-ITEM-INSTANCE
Trigger Object – LINES.REFERENCE_NUM
Condition  - :LINES.TRANSACTION_REASON IN (‘IMPORT – SPARES’,’LOCAL – SPARES’)
Processing  Mode - Both

Action Tab
Seq          Type        Descritpion              Language
9              Property                                  All

Object Type -  Item
Target Object – LINES.DEST_SUBINVENTORY
Property Name – DISPLAYED
Value       - TRUE


Action Tab
Seq          Type        Descritpion              Language
10            Property                                  All

Object Type -  Item
Target Object – LINES.DEST_SUBINVENTORY
Property Name – ENABLED
Value       - TRUE

Action Tab
Seq          Type        Descritpion              Language
11            Property                                  All

Object Type -  Item
Target Object – LINES.DEST_SUBINVENTORY
Property Name – VALUE
Value       -  =’SPARES’


Name - Transaction Nature – Regular
Once the Transaction Reason code is selected any one of the SPARES then DEST_SUBINVENTORY will displayed and again Transaction Reason code is selected any one of the REGULAR then DEST_SUBINVENTORY should not display.
So, We have created this Personalization.

If Transaction_reason in (‘IMPORT – SPARES’,’LOCAL – SPARES’) THEN DEST_SUBINVENTORY SHOULD BE Displayed and the value should be ‘SPARES’
Condition Tab
Trigger Event – WHEN-NEW-ITEM-INSTANCE
Trigger Object – LINES.REFERENCE_NUM
Condition  - :LINES.TRANSACTION_REASON IN (‘IMPORT – REGULAR’,’LOCAL – REGULAR’)
Processing  Mode - Both

Action Tab
Seq          Type        Descritpion              Language
10            Property                                  All

Object Type -  Item
Target Object – LINES.DEST_SUBINVENTORY
Property Name – DISPLAYED
Value       - FALSE

Action Tab
Seq          Type        Descritpion              Language
10            Property                                  All

Object Type -  Item
Target Object – LINES.DEST_SUBINVENTORY
Property Name – DISPLAYED
Value       - FALSE

 

Form Personalization to restrict the seeded LOV and attach the custom LOV to the field in the form.

Whenever we are going to create an custom LOV and want to attach to an field in the form, then that field should be LOV one. Then only we can restrict the seeded LOV and attach the custom LOV which we have created.

1. Change the Preparer LOV in requistion form.


seq  -- 10
Description  -- Change Preparer LOV

Trigger Event -- WHEN-NEW-FORM-INSTANCE

2.  Click Action Tab



Seq  Type
10    Builtin

Builtin Type - Create Record Group from Query
Argument - SELECT DISTINCT he.full_name,
                                                      he.employee_num,
                                                      he.employee_id
                      FROM po_requisition_headers prh, hr_employees he
                   WHERE he.employee_id = prh.preparer_id           
                    Order By 1
Group Name - XX_PREPARER_LOV


3. 

Seq  Type
20    Property

Object Type -- LOV
Target Object -- PREPARER_NAME  (Field name in the form).
Property Name -- GROUP_NAME
Value --  XX_PREPARER_LOV

Global variable in Form personalization

Description = Check Parent BOM Item For Cannibalization1

Trigger Event  = WHEN-NEW-ITEM-INSTANCE
Trigger Object = TOMAI_MAIN_LINES_BLK.QUANTITY
Condition = :TOMAI_MAIN_LINES_BLK.INVENTORY_ITEM IS NOT NULL



Seq = 10
Type = Property
Description = Check Parent BOM Item For Cannibalization1
Language = ALL

Object Type = Global Variable
Target Object = G_ITEM_VALUE
Property Name = VALUE
VALUE = =(SELECT COUNT(1)
  FROM BOM_BILL_OF_MATERIALS
 WHERE ASSEMBLY_ITEM_ID = (SELECT DISTINCT INVENTORY_ITEM_ID
                             FROM MTL_SYSTEM_ITEMS_B
                            WHERE SEGMENT1 = :TOMAI_MAIN_LINES_BLK.INVENTORY_ITEM)
   AND ORGANIZATION_ID=FND_PROFILE.VALUE('MFG_ORGANIZATION_ID'))




Description = Restrict Assembly Items – QUANTITY

Trigger Event = WHEN-NEW-ITEM-INSTANCE
Trigger Object = TOMAI_MAIN_LINES_BLK.QUANTITY
Condition = :GLOBAL.G_ITEM_VALUE != 0 and :TOMAI_MAIN_LINES_BLK.INVENTORY_ITEM IS NOT NULL



Seq = 20
Type = Message

Message Type = Warn
Message Text = Note : This is Parent BOM Item; User cannot do transaction with this item.

Only after Cannibalization this transaction is possible



Seq = 25
Type = Property

Object Type = Global Variable
Target Object = G_ITEM_VALUE
Property Name = VALUE
Value = NULL



seq = 30
Type = Builtin

Builtin Type = GO_ITEM
Argument = TOMAI_MAIN_LINES_BLK.INVENTORY_ITEM




Seq = 40
Type = Property

Object Type = Item
Target Object = TOMAI_MAIN_LINES_BLK.QUANTITY
Property Name = ALTERABLE_PLUS
Value = FALSE



seq = 50
Type = Builtin

Builtin Type = Raise FORM_TRIGGER_FAILURE

Monday 11 June 2012

Sql Query to get Concurrent program name and its parameter

Below query can be used to get concurrent program name and its parameter

SELECT fcpl.user_concurrent_program_name     ,
               fcp.concurrent_program_name     ,
               par.end_user_column_name     ,
               par.form_left_prompt prompt     ,
               par.enabled_flag     ,
               par.required_flag     ,
               par.display_flag
FROM   fnd_concurrent_programs fcp     ,
              fnd_concurrent_programs_tl fcpl     ,
              fnd_descr_flex_col_usage_vl par
WHERE  fcp.concurrent_program_id = fcpl.concurrent_program_id
     AND  fcpl.user_concurrent_program_name = &conc_prg_name
     AND  fcpl.LANGUAGE = 'US'
     AND  par.descriptive_flexfield_name = '$SRS$.' || fcp.concurrent_program_name

Sql query to get the request group name, concurrent program name when we pass the responsibility name.

Concurrent Program Attached to a Responsibility
=================================
Below query can be a handy one to find the list of responsibilities where the concurret program is attached.

select frg.request_group_name      ,
         fcpt.user_concurrent_program_name CONC_PGM_NAME 
from fnd_concurrent_programs_tl fcpt      ,
        fnd_request_group_units    frgu      ,
        fnd_request_groups         frg      ,
        fnd_responsibility         fr      ,
        fnd_responsibility_tl      frt
where 1 = 1  
    and frgu.request_unit_id = fcpt.concurrent_program_id  
    and frg.request_group_id = frgu.request_group_id  
    and fr.request_group_id = frg.request_group_id  
    and frt.responsibility_id = fr.responsibility_id  
    and frt.language = USERENV('LANG')  
    and fcpt.language = USERENV('LANG')  
    and frt.responsibility_name = '&RESPONSIBILITY_NAME'
order by fcpt.user_concurrent_program_name

Sql query to get the responsibility name,request group name if you pass the request set name.

select frt.responsibility_name,     
         frg.request_group_name,
         frgu.request_unit_type,
         frgu.request_unit_id,
         fcpt.user_request_set_name
From apps.fnd_Responsibility fr,
         apps.fnd_responsibility_tl frt,
         apps.fnd_request_groups frg,
         apps.fnd_request_group_units frgu,
         apps.fnd_request_Sets_tl fcpt
where frt.responsibility_id = fr.responsibility_id
    and frg.request_group_id = fr.request_group_id
    and frgu.request_group_id = frg.request_group_id
    and fcpt.request_set_id = frgu.request_unit_id
    and frt.language = USERENV('LANG')
    and fcpt.language = USERENV('LANG')
    and fcpt.user_request_set_name = '&request_set_name'
 order by 1,2,3,4

Query will help to know who ran the concurrent program from backend.

select a.request_id,
a.request_date,
a.user_concurrent_program_name,
a.requestor,
a.completion_text,
a.actual_start_date,
a.actual_completion_date,
a.phase_code,
a.status_code,
a.argument_text,
b.logfile_name,
b.logfile_node_name,
b.outfile_name,
b.outfile_node_name,
a.responsibility_id,
c.request_group_id,
c.RESPONSIBILITY_NAME,
c.description,d.*
FROM FND_CONC_REQ_SUMMARY_V a,
fnd_concurrent_requests b,
FND_RESPONSIBILITY_VL c ,
FND_REQUEST_GROUPS d
where 1=1
and a.responsibility_id = c.responsibility_id
-and trunc(a.request_date) >= trunc(sysdate)-8
--and trunc(a.request_date) = '14-Feb-2007'
and a.request_id = b.request_id
and c.request_group_Id = d.request_group_id
- and a.requestor not in ('SYSADMIN')
--and a.user_concurrent_program_name like '%DMR - CANADA BANK CHECK RECONCILIATION OUTBOUND%(CCN)%'--'%AS400%PO%'
and a.user_concurrent_program_name = 'FPC Aging - 4 Buckets by Collector'--'%AS400%PO%'
--and a.argument_text = 'pospoaord14020724093529'
ORDER BY a.request_date desc

Friday 8 June 2012

Insert/Insert all command using select statement.

INSERT INTO suppliers
(supplier_id, supplier_name)
SELECT account_no, name
FROM customers
WHERE city = 'Newark';
or

Frequently Asked Questions


Question: I am setting up a database with clients. I know that you use the "insert" statement to insert information in the database, but how do I make sure that I do not enter the same client information again?
Answer: You can make sure that you do not insert duplicate information by using the EXISTS condition.
For example, if you had a table named clients with a primary key of client_id, you could use the following statement:
INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, 'advertising'
FROM suppliers
WHERE not exists (select * from clients
where clients.client_id = suppliers.supplier_id);
This statement inserts multiple records with a subselect.
If you wanted to insert a single record, you could use the following statement:
INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345, 'IBM', 'advertising'
FROM dual
WHERE not exists (select * from clients
where clients.client_id = 10345);
The use of the dual table allows you to enter your values in a select statement, even though the values are not currently stored in a table.
Learn more about the EXISTS condition.

Question: How can I insert multiple rows of explicit data in one SQL command in Oracle?
Answer: The following is an example of how you might insert 3 rows into the suppliers table in Oracle.
INSERT ALL
   INTO suppliers (supplier_id, supplier_name) VALUES (1000, 'IBM')
   INTO suppliers (supplier_id, supplier_name) VALUES (2000, 'Microsoft')
   INTO suppliers (supplier_id, supplier_name) VALUES (3000, 'Google')
SELECT * FROM dual;

How does one select the TOP N rows from a table or N th salary from emp table.

From Oracle 9i onwards, the RANK() and DENSE_RANK() functions can be used to determine the TOP N rows. Examples:

Get the top 10 employees based on their salary


SELECT ename, sal 
  FROM ( SELECT ename, sal, RANK() OVER (ORDER BY sal DESC) sal_rank
           FROM emp ) 
 WHERE sal_rank <= 10;


Select the employees making the top 10 salaries


SELECT ename, sal 
  FROM ( SELECT ename, sal, DENSE_RANK() OVER (ORDER BY sal DESC) sal_dense_rank
           FROM emp ) 
 WHERE sal_dense_rank <= 10;

For Oracle 8i and above, one can get the Top N rows using an inner-query with an ORDER BY clause:

From Oracle 9i onwards, the RANK() and DENSE_RANK() functions can be used to determine the TOP N rows. Examples:

Get the top 10 employees based on their salary



SELECT ename, sal 
  FROM ( SELECT ename, sal, RANK() OVER (ORDER BY sal DESC) sal_rank
           FROM emp ) 
 WHERE sal_rank <= 10;


Select the employees making the top 10 salaries



SELECT ename, sal 
  FROM ( SELECT ename, sal, DENSE_RANK() OVER (ORDER BY sal DESC) sal_dense_rank
           FROM emp ) 
 WHERE sal_dense_rank <= 10;

For Oracle 8i and above, one can get the Top N rows using an inner-query with an ORDER BY clause:
SELECT *
  FROM my_table a
 WHERE 10 >= (SELECT COUNT(DISTINCT maxcol)
                FROM my_table b
               WHERE b.maxcol >= a.maxcol)
 ORDER BY maxcol DESC;


To get top 10 earners of the company:
select * from(select * from emp order by sal desc) where rownum<11; OR
select * from(select * from emp order by sal desc) where rownum<=10;

or

SELECT empno, ename, job, mgr, hiredate, sal, comm, deptno
FROM (SELECT ROW_NUMBER () OVER (PARTITION BY deptno ORDER BY sal DESC) rn,
empno, ename, job, mgr, hiredate, sal, comm, deptno
FROM emp)
WHERE rn = n;

Where rn=1 lists all the top employees in Each Department.

For yours, where rn<=n will list the top 5 Employees in each Dept

OR

select ename
        ,sal
        ,dense_rank() over (order by sal desc) ranking
  from   emp;
or
select *
  from
  (
    select ename
          ,sal
          ,dense_rank() over (order by sal desc) ranking
    from   emp
  )
  where ranking = n -- Replace n with any value of as 1,2,3,4,.........
  /

Sequence Creation and alter Sequence

In Oracle, you can create an autonumber field by using sequences. A sequence is an object in Oracle that is used to generate a number sequence. This can be useful when you need to create a unique number to act as a primary key.
The syntax for a sequence is:
CREATE SEQUENCE sequence_name
    MINVALUE value
    MAXVALUE value
    START WITH value
    INCREMENT BY value
    CACHE value;
For example:
CREATE SEQUENCE supplier_seq
    MINVALUE 1
    MAXVALUE 999999999999999999999999999
    START WITH 1
    INCREMENT BY 1
    CACHE 20;
This would create a sequence object called supplier_seq. The first sequence number that it would use is 1 and each subsequent number would increment by 1 (ie: 2,3,4,...}. It will cache up to 20 values for performance.
If you omit the MAXVALUE option, your sequence will automatically default to:
MAXVALUE 999999999999999999999999999

So you can simplify your CREATE SEQUENCE command as follows:
CREATE SEQUENCE supplier_seq
    MINVALUE 1
    START WITH 1
    INCREMENT BY 1
    CACHE 20;
Now that you've created a sequence object to simulate an autonumber field, we'll cover how to retrieve a value from this sequence object. To retrieve the next value in the sequence order, you need to use nextval.
For example:
supplier_seq.nextval
This would retrieve the next value from supplier_seq. The nextval statement needs to be used in an SQL statement. For example:
INSERT INTO suppliers
(supplier_id, supplier_name)
VALUES
(supplier_seq.nextval, 'Kraft Foods');
This insert statement would insert a new record into the suppliers table. The supplier_id field would be assigned the next number from the supplier_seq sequence. The supplier_name field would be set to Kraft Foods.

Frequently Asked Questions


One common question about sequences is:
Question: While creating a sequence, what does cache and nocache options mean? For example, you could create a sequence with a cache of 20 as follows:
CREATE SEQUENCE supplier_seq
    MINVALUE 1
    START WITH 1
    INCREMENT BY 1
    CACHE 20;


Or you could create the same sequence with the nocache option:
CREATE SEQUENCE supplier_seq
    MINVALUE 1
    START WITH 1
    INCREMENT BY 1
    NOCACHE;


Answer: With respect to a sequence, the cache option specifies how many sequence values will be stored in memory for faster access.
The downside of creating a sequence with a cache is that if a system failure occurs, all cached sequence values that have not be used, will be "lost". This results in a "gap" in the assigned sequence values. When the system comes back up, Oracle will cache new numbers from where it left off in the sequence, ignoring the so called "lost" sequence values.
Note: To recover the lost sequence values, you can always execute an ALTER SEQUENCE command to reset the counter to the correct value.
Nocache means that none of the sequence values are stored in memory. This option may sacrifice some performance, however, you should not encounter a gap in the assigned sequence values.



Question: How do we set the LASTVALUE value in an Oracle Sequence?
Answer: You can change the LASTVALUE for an Oracle sequence, by executing an ALTER SEQUENCE command.
For example, if the last value used by the Oracle sequence was 100 and you would like to reset the sequence to serve 225 as the next value. You would execute the following commands.
alter sequence seq_name
increment by 124;
select seq_name.nextval from dual;
alter sequence seq_name
increment by 1;
Now, the next value to be served by the sequence will be 225.

Generic Loader (FNDLOAD)

The Generic Loader (FNDLOAD) is a concurrent program that can transfer Oracle Application entity data between database and text file.The loader reads a configuration file to determine which entity to access.
1 - Printer Styles
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcppstl.lct file_name.ldt STYLE PRINTER_STYLE_NAME="printer style name"
2 - Lookups
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct file_name.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="FND"
LOOKUP_TYPE="lookup name"
FNDLOAD apps/p10d O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct XXIDEA_VENDOR_GROUP_LU.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="PO"
LOOKUP_TYPE="XXIDEA_VENDOR_GROUP"
3 - Descriptive Flexfield with all of specific Contexts
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt DESC_FLEX P_LEVEL=’COL_ALL:REF_ALL:CTX_ONE:SEG_ALL’ APPLICATION_SHORT_NAME="FND" DESCRIPTIVE_FLEXFIELD_NAME="desc flex name" P_CONTEXT_CODE="context name"
Examples:
Note <274528.1> - Note How To Download Single Context Using FNDLOAD For Descriptive Flexfield.
Note <256573.1> - How To Download/Upload Descriptive Flexfield With Name $SRS$.
4 - Key Flexfield Structures
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt KEY_FLEX P_LEVEL=’COL_ALL:FQL_ALL:SQL_ALL:STR_ONE:WFP_ALL:SHA_ALL:CVR_ALL:SEG_ALL’ APPLICATION_SHORT_NAME="FND" ID_FLEX_CODE="key flex code" P_STRUCTURE_CODE="structure name"
5 - Concurrent Programs
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct file_name.ldt PROGRAM APPLICATION_SHORT_NAME="FND" CONCURRENT_PROGRAM_NAME="concurrent name"
6 - Value Sets
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt VALUE_SET_VALUE FLEX_VALUE_SET_NAME="value set name"
7 - Value Sets with values
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct file_name.ldt VALUE_SET FLEX_VALUE_SET_NAME="value set name"
8 - Profile Options
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct file_name.ldt PROFILE PROFILE_NAME="profile option" APPLICATION_SHORT_NAME="FND"
8 - Request Groups
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpreqg.lct file_name.ldt REQUEST_GROUP REQUEST_GROUP_NAME="request group" APPLICATION_SHORT_NAME="FND"
10 - Request Sets
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct file_name.ldt REQ_SET
APPLICATION_SHORT_NAME="FND" REQUEST_SET_NAME="request set"
Examples:
Note <247126.1> - How To Download Request Set Definition From One Instance And Upload On Another Instance
11 - Responsibilities
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afscursp.lct file_name.ldt FND_RESPONSIBILITY RESP_KEY="responsibility"
12 - Menus
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct file_name.ldt MENU MENU_NAME="menu_name"

Export To Excel from D2K(rdf) report

Convert the report into the Excel Sheet.

Why we have to convert report into Excel Sheet
  1. Better Manner
  2. Editable
  3. Simple Reports are convert into the Excel Sheet.

Eg:

Steps:

  1. Go to the Report Builder
                   Go to the Data Model
                              Select the Sql Query and click on Data Model
                                          Type the Sql Query in it.

 SELECT
 po_header_id
,segment1
,created_by
,creation_date
,vendor_id
FROM
po_headers_all

  1. Take 3 placeholder columns 1 Formula Column

First  placeholder column CP_1
 Name it as CP_Title
 Data Type : Char
 Size  :200

Second placeholder column CP_2
 Name it as CP_Col_Headings
Data Type : Char
 Size  : 600

Third placeholder column CP_3
 Name it as CP_Values
Data Type : Char
 Size  : 500


One Formula column CF_1
Name it as CF_Excel
Data Type : Number
Size  : 20


  1. Go to the property palette of the Formula Column(CF_Excel)
Go to the PL/Sql Formula

In that Write this code depending upon ur sql query
              
                Function CF_EXCELFormula return Number is
                  Begin
:CP_Title :=’,’||’,’||’,’||’,’||’,’||’Report For Practice on Exports to Excel’;
:CP_Col_Headings := ‘Header Id’||’Po Number’||’Created By’||’Creation Date’||’Vendor Id’;
:CP_Values:=po_header_id||’,’||:segment1||’,’||:created_by||’,’||:creation_date||’,’||:vendor_id;
   return 2;
end;

Compile and Close it.

  1. Go to Layout Model

                  
For Field F_1 press F4 or select the Property palette
    Go to the Source =CP_Title

For Field F_2 press F4 or select the Property palette
    Go to the Source =CP_Col_Headings

For Field F_3 press F4 or select the Property palette
    Go to the Source =CP_Values
     And Go to the Vertical Layout
                   Set Vertial Elasticity = Fixed
                          Horizontal Elasticity = Variable

For the Repeating Frame press F4
        Go to the Source = G_header_id
          And Go to the Vertical Layout
                   Set Vertial Elasticity = Expand
                          Horizontal Elasticity = Expand

Save the Report with the ‘.txt’ format.

Next Register the Report in the Apps

1.      Create Executable
2.      Define the Concurrent>Program>Defien
          In that OutPut set
                       Format = HTML
                       Style = BACS
3.      Attach the Concurrent Program in the Request Group.
4.      Submit the Request in the View>Request
5.      And then go to the Excel Sheet
6.      And Click Open  and select the report name with ‘.txt’ one.
7.      It will ask the Delimiter
Just specify the delimiter i.e., Comma(,) {which we have given in the CP_Title}

Thursday 7 June 2012

Update Line Type Personalization in Requisition form


Update Line Type Personalization in Requisition form
present condition
:LINES.QUANTITY is null and
:LINES.CREATION_DATE >to_date('26-APR-2011' ,'DD-MON-YYYY') or
:LINES.CREATION_DATE is null

exists condition
:LINES.CREATION_DATE >to_date('26-APR-2011' ,'DD-MON-YYYY') or
:LINES.CREATION_DATE is null

PO Line Update in PO


seq - 62
Description  - Update PO Line Type
Trigger Event - WHEN-NEW-ITEM-INSTANCE
Trigger Object - PO_LINES.ITEM_NUMBER_MIR
Condition –
:PO_LINES.CREATION_DATE >to_date(' 26-APR-2011' ,'DD-MON-YYYY') or
:PO_LINES.CREATION_DATE is null
Processing Mode – Both




seq – 10
Type – Property

Object Type – Item
Target Object – PO_LINES.LINE_TYPE
Property Value – VALUE
Value -- =APPS.xxidea_get_po_line_type(:PO_LINES.ITEM_ID)

Promised Date
 
seq - 63
Description  - Promised Date Restriction
Trigger Event - WHEN-NEW-ITEM-INSTANCE
Trigger Object - PO_LINES.TRANSACTION_REASON
Condition –
trunc(to_date(:po_lines.promised_date,'DD-MON-YY HH24:MI:SS')) < trunc(to_date(:po_lines.creation_date,'DD-MON-YY HH24:MI:SS'))
and
:po_headers.doc_type_name ='Standard Purchase Order'
and
:PO_LINES.CREATION_DATE >to_date(' 24-MAY-2011' ,'DD-MON-YYYY')
Processing Mode – Both

 

seq – 10
Type – Message

Message Type – Error
Message Text -- Promise Date must be Equal to or Greater than Line creation date.




Seq – 11
Type – Builtin

Builtin  Type --  GO_ITEM
Argument -- PO_LINES.PROMISED_DATE
Promised Date Mandatory for each line



Seq – 73
Description -- Promised Date must be Equal to or Greater than Creation Date

Trigger Event -- WHEN-NEW-RECORD-INSTANCE
Trigger Object -- PO_APPROVE
Condition  --   APPS.xxidea_get_line_count_promised(:PO_HEADERS.PO_HEADER_ID)>0
Processing Mode – Not in Enter-Query Mode


Seq – 10
Type – Type

Builtin Type – GO_ITEM
Argument -- PO_LINES.PROMISED_DATE




Seq – 11
Type – Message

Message Type – Error
Message Text -- Promise Date must be Equal to or Greater than Line creation date on all Lines.

Free Of Cost


Seq – 64.1
Description -- FOC  - Market Price Mandatory when click on ok

Trigger Event -- WHEN-NEW-ITEM-INSTANCE
Trigger Object -- PO_LINES.LINE_NUM
Condition –
:PO_LINES.TRANSACTION_REASON_CODE IN ('FOC-Y')
AND :PO_HEADERS.DOC_TYPE_NAME = 'Standard Purchase Order'
Processing Mode – Both



Seq – 10
Type – Builtin

Builtin Type – GO_ITEM
Argument -- PO_LINES.LIST_PRICE_PER_UNIT