AME with 2 conditions with amount

In this case we will just have 2 conditions and approvers groups with a condition of Amount.

If Amount >= 1 million then send to SH(Share holder approver) approver group

If Amount < 1 million then send notification 3 level approver group.

Creating Attribute

So for this we define a attribute and then we get the amount from our Query

select price_in_usd from xxdpc_penality_details_v where item_key = :transactionId


In the below picture the price_in_usd is the determining amount for our condition.

Creating Conditions


On condition creation we have to select the Attribute amount and then we will have the condition whether it is equal or less or greater and then we can have our amount.

Take the Approval type with the below option

approval-group chain of authority Chain of authority includes an approval group

Approver Groups

Define 2 seperate approver group and I have defined here a dynamic approver group


We can have a stacked users in one query in the below Query

select ‘person_id:’||agent_id from xxdpc_penality_pro where item_key = :transactionId


select ‘person_id:’||(agent_id+1) from xxdpc_penality_pro where item_key = :transactionId


select ‘person_id:’||(agent_id+2) from xxdpc_penality_pro where item_key = :transactionId


Define 2 rules for amount less than and amount greater than equal to

So in one rule


So we have attached Action type which consists of 3 level approver group and condition which is linked with attribute.


Create a another rule with the amount greater condition.

So to Test this we have to Test Workbench → Run real transaction test


So we have linked the transaction Id and from that we have taken the data from the table so I give a test data.

Now we will go with running test case so select Run Test Case


So we will now be able to see the approvers.

API for Value Set in Oracle apps(Independent and Dependent)

API for Value Set in Oracle apps


Below is the API to upload the values in the value set as shown in below screenshot


A Value set must be already exist in the system as commented in API. The Below is Independent

 Independent Values

l_enabled_flag varchar2 (2);
l_summary_flag varchar2 (2);
l_who_type fnd_flex_loader_apis.who_type;
l_user_id number := fnd_global.user_id;
l_login_id number := fnd_global.login_id;
l_value_set_name fnd_flex_value_sets.flex_value_set_name%type;
l_value_set_value fnd_flex_values.flex_value%type;
l_value_set_desc varchar2 (500);
l_value_set_name := ‘XX_ITEM_CATEGORY_VALUE_T’; –This Value set should already exist in the system as Independent
l_enabled_flag := ‘Y’;
l_summary_flag := ‘N’;
l_who_type.created_by := 6532;
l_who_type.creation_date := sysdate;
l_who_type.last_updated_by := 6532;
l_who_type.last_update_date := sysdate;
l_who_type.last_update_login := 6532; –l_value_set_name
l_value_set_value :=60123; –l_value_set_value
l_value_set_desc := ‘Under Testing check’;
fnd_flex_loader_apis. –API to upload the value set
up_value_set_value (
p_upload_phase => ‘BEGIN’,
p_upload_mode => null,
p_custom_mode => ‘FORCE’,
p_flex_value_set_name => l_value_set_name,
p_parent_flex_value_low => null,
p_flex_value => l_value_set_value,
p_owner => null,
p_last_update_date => to_char (sysdate, ‘YYYY/MM/DD HH24:MI:SS’),
p_enabled_flag => l_enabled_flag,
p_summary_flag => l_summary_flag,
p_start_date_active => to_char (sysdate, ‘YYYY/MM/DD HH24:MI:SS’),
p_end_date_active => null,
p_parent_flex_value_high => null,
p_rollup_flex_value_set_name => null,
p_rollup_hierarchy_code => null,
p_hierarchy_level => null,
p_compiled_value_attributes => null,
p_value_category => ‘VALUE_SET_NAME’,
p_attribute1 => null,
p_attribute2 => null,
p_attribute3 => null,
p_attribute4 => null,
p_attribute5 => null,
p_attribute6 => null,
p_attribute7 => null,
p_attribute8 => null,
p_attribute9 => null,
p_attribute10 => null,
p_attribute11 => null,
p_attribute12 => null,
p_attribute13 => null,
p_attribute14 => null,
p_attribute15 => null,
p_attribute16 => null,
p_attribute17 => null,
p_attribute18 => null,
p_attribute19 => null,
p_attribute20 => null,
p_attribute21 => null,
p_attribute22 => null,
p_attribute23 => null,
p_attribute24 => null,
p_attribute25 => null,
p_attribute26 => null,
p_attribute27 => null,
p_attribute28 => null,
p_attribute29 => null,
p_attribute30 => null,
p_attribute31 => null,
p_attribute32 => null,
p_attribute33 => null,
p_attribute34 => null,
p_attribute35 => null,
p_attribute36 => null,
p_attribute37 => null,
p_attribute38 => null,
p_attribute39 => null,
p_attribute40 => null,
p_attribute41 => null,
p_attribute42 => null,
p_attribute43 => null,
p_attribute44 => null,
p_attribute45 => null,
p_attribute46 => null,
p_attribute47 => null,
p_attribute48 => null,
p_attribute49 => null,
p_attribute50 => null,
p_flex_value_meaning => l_value_set_value,
p_description => l_value_set_desc);
when others
dbms_output.put_line (‘Error is ‘ || substr (sqlerrm, 1, 1000));


The below screenshot once the API is Executed.

API - After Exe Independent


For Dependent values





l_enabled_flag     varchar2 (2);

l_summary_flag     varchar2 (2);

l_who_type         fnd_flex_loader_apis.who_type;

l_user_id           number := fnd_global.user_id;

l_login_id         number := fnd_global.login_id;

l_value_set_name   fnd_flex_value_sets.flex_value_set_name%type;

l_value_set_value   fnd_flex_values.flex_value%type;

l_value_set_desc   varchar2 (500);


l_value_set_name := ‘XXDPC_ITEM_CATEGORY_VALUE_T1’;

l_enabled_flag := ‘Y’;

l_summary_flag := ‘N’;

l_who_type.created_by := 6532;

l_who_type.creation_date := sysdate;

l_who_type.last_updated_by := 6532;

l_who_type.last_update_date := sysdate;

l_who_type.last_update_login := 6532;       –l_value_set_name

l_value_set_value :=1263;                       –l_value_set_value

l_value_set_desc := ‘Under Testing check’;

fnd_flex_loader_apis.                   –API to upload the value set

up_value_set_value (

p_upload_phase                 => ‘BEGIN’,

p_upload_mode                 => null,

p_custom_mode                 => ‘FORCE’,

p_flex_value_set_name         => l_value_set_name,

p_parent_flex_value_low       => 60255,                                                             –Independent Value

p_flex_value                   => l_value_set_value,

p_owner                       => null,

p_last_update_date             => to_char (sysdate, ‘YYYY/MM/DD HH24:MI:SS’),

p_enabled_flag                 => l_enabled_flag,

p_summary_flag                 => l_summary_flag,

p_start_date_active           => to_char (sysdate, ‘YYYY/MM/DD HH24:MI:SS’),

p_end_date_active             => null,

p_parent_flex_value_high       => null,

p_rollup_flex_value_set_name   => ‘XXDPC_ITEM_CATEGORY_VALUE_T’,                 –Independent Value set

p_rollup_hierarchy_code       => null,

p_hierarchy_level             => null,

p_compiled_value_attributes   => null,

p_value_category               => null,

p_attribute1                   => null,

p_attribute2                   => null,

p_attribute3                   => null,

p_attribute4                   => null,

p_attribute5                   => null,

p_attribute6                   => null,

p_attribute7                   => null,

p_attribute8                   => null,

p_attribute9                   => null,

p_attribute10                 => null,

p_attribute11                 => null,

p_attribute12                 => null,

p_attribute13                  => null,

p_attribute14                 => null,

p_attribute15                 => null,

p_attribute16                 => null,

p_attribute17                 => null,

p_attribute18                 => null,

p_attribute19                 => null,

p_attribute20                 => null,

p_attribute21                 => null,

p_attribute22                 => null,

p_attribute23                 => null,

p_attribute24                  => null,

p_attribute25                 => null,

p_attribute26                 => null,

p_attribute27                 => null,

p_attribute28                 => null,

p_attribute29                 => null,

p_attribute30                 => null,

p_attribute31                 => null,

p_attribute32                 => null,

p_attribute33                 => null,

p_attribute34                 => null,

p_attribute35                  => null,

p_attribute36                 => null,

p_attribute37                 => null,

p_attribute38                 => null,

p_attribute39                 => null,

p_attribute40                 => null,

p_attribute41                 => null,

p_attribute42                 => null,

p_attribute43                 => null,

p_attribute44                 => null,

p_attribute45                 => null,

p_attribute46                  => null,

p_attribute47                 => null,

p_attribute48                 => null,

p_attribute49                 => null,

p_attribute50                 => null,

p_flex_value_meaning           => l_value_set_value,

p_description                 => l_value_set_desc);



when others


dbms_output.put_line (‘Error is ‘ || substr (sqlerrm, 1, 1000));


API - After Exe Dependent



Originally posted on BITTER REALITIES:

By: J.M.

Poverty means a state of constant stress, a feeling of being powerless, helpless, a kind of hopelessness causing life expectancy to drop for many who struggle throughout their lives, to access basic needs which although were provided free by nature, were made inaccessible by those who defined and enforced the way the world works, while this way has been accepted and passed on through generations, by parents to children.

A holocaust that happens every year, not by the hands of a dictator, rather by the hands of starvation that kills more than 6 million children every year. Six million children die each year yet no one even notices? Is that apathy or is it desensitization? 

We have collectively agreed upon and accepted an economic paradigm, constructed upon predatory values,  having a clear basic flaw which restricts the system to support only a small sector of the world’s population, keeping the majority deprived and…

View original 1,874 more words


Originally posted on BITTER REALITIES:

By: Jim Kirwan

Falsehood is taught in schools

The Matrix is one of the greatest metaphors ever. ‘Machines invented to make life easier end up enslaving humanity‘. This is the most dystopian theory in science-fiction. Why is this fear so universal, so compelling? Is it because we really believe our toaster and our notebook will end up as our mechanical overlords? Of course not. This is not a future that we fear but a past that we are already living.

Supposedly governments were meant to make human life easier and safer. But governments always end up enslaving humanity. That which we create to “serve us” ends up “ruling us.” The US government by and for the people now imprisons millions. It takes half the income by force, over-regulates, punishes, tortures, slaughters foreigners, invades countries; overthrows governments, imposes seven hundred imperialistic bases overseas and crushes future generations with massive debts. That which we create to…

View original 1,276 more words

Opening eclipse with different JVM version

Sometimes we have a requirement that the eclipse has to be started by a different java version. So in order to do that we have to do that we have to edit the configuration file in eclipse.

Step 1 :

Open eclipse config file eclipse.ini in your Eclipse folder.


  • Add -vm yourPath\Java\jre6\bin\javaw.exe like in the screenshot below
  • Eclipse-ini-file-edit

Thank You



Getting Value from KFF in OAF

The below code is used to get the KFF values in runtime(When a user gives input).

OAKeyFlexBean kffbean= (OAKeyFlexBean)webBean.findIndexedChildRecursive(“HrSitKeyFlex”);     //Get the KFF bean

KeyFlexfield kff=(KeyFlexfield)kffbean.getAttributeValue(OAWebBeanConstants.FLEXFIELD_REFERENCE);       //Getting the Reference Value
Segment1 = kff.getSegment(1).getValue().toString();    //This returns Value object so we can just see a object
Segment5 = kff.getSegment(1).getName();                 // This returns the Segment name attached

Segment4 = kff.getSegment(1).getInputValue();       // This returns the Segment value when user gives as input
pageContext.writeDiagnostics(this,”On Getting Value the Entered Value “+Segment4,1);
pageContext.writeDiagnostics(this,”On Getting Value the Computed  Value “+outParamValue,1);

int enter_val = Integer.parseInt(Segment4);
pageContext.writeDiagnostics(this,”On Getting Value the Entered Value “+enter_val,1);
if(outParamValue < enter_val)
throw new OAException(“Please Enter a lower value than your Credit Limit”+outParamValue, OAException.ERROR);

Source : The above code was obtained by my collague Vignesh.

Running a Concurrent from PLSQL in oracle apps

v_request_id NUMBER;
ln_temp number;

apps.fnd_global.apps_initialize ( user_id => 0, resp_id => 50007, resp_appl_id => 201 );
select apps.rcv_interface_groups_s.nextval into ln_temp from dual;

v_request_id := apps.fnd_request.submit_request ( application => ‘PO’,
argument1 => ‘BATCH’,
argument2 => ln_temp
— argument3 => 204
dbms_output.put_line(‘Request Id’||v_request_id);


தீபாவளி கொண்டாடும் தமிழர்களே அசுரன் யார் என்று தெரியுமா?

அசுரர் என்பது காரணப் பெயரே.
சுரன் என்றால் சுரபானம் (மது) அருந்துபவர். அசுரன் என்றால் மது அருந்தாதவர்கள்.

ஆரியர்கள் தங்கள் வழக்கப்படி நல்லவற்றை கெட்டவை என்றும், நல்லவர்களைக் கெட்டவர்கள் என்று நிலைநிறுத்த மக்களிடம் திரும்பத் திரும்பச் சொல்லி அவை வழக்கத்திற்கே வந்துவிட்டன.

இந்த முறையில் மக்களின் மூளைக்கு விலங்கிட்டும், பல மன்னர்களின் துணையாலும் புத்தர்கள், சமணர்கள் பலரைக் கொன்றும், யாக குண்டங்களில் இட்டுக் கொளுத்தியும், கழுவேற்றியும் அழித்தனர்.

அசுரர் என்பவர் வலிமை மிக்க, கொல்லாமை விரதம் பூண்ட, நல்லெண்ணம் கொண்ட நாகரிகம் மிக்க தமிழர்களையே குறிக்கிறது.

அது தவறாகக் கொள்ளப்பட்டு, மக்களை நம்பவைத்துள்ளனர்.

இந்தப் பண்டிகைகளைக் கொண்டாடும் மக்கள் மானமும் அறிவும் இல்லாமல் தங்களைத் தாங்களே இழிவுபடுத்திக் கொள்வதாகும்.

இராவணனின் வீழ்ச்சிக்கு பிறகு சில காலம் கழித்து ஆரிய ஆக்கிரமிப்பை எதிர்த்து போர் புரிந்த தமிழ் மன்னர்களில் ஒருவனே நரகாசுரன். நரகாசுரனும்மற்றைய பல மன்னர்களும் ஆரிய ஆக்கிரமிப்பை எதிர்த்து போர் புரிந்து வீர மரணம் அடைந்தார்கள்.

கடைசியில் தமிழினத்தை வெற்றி கொண்ட ஆரியர்கள் தமிழர்களின் வரலாற்றை திரிவுபடுத்தினார்கள். இன்று விடுதலைப் போராளிகளைஆக்கிரமிப்பாளர்கள் பயங்கரவாதிகள் என்று சொல்வது அன்று ஆரியர்கள் அன்று தமிழின விடுதலைக்காக போரடியவர்களை அரக்கர்கள் என்றுசொன்னார்கள். முறிக்கிய மீசையோடு கம்பீரமாக நின்று தமிழ் மண்ணைக் காக்க இறுதிவரை போராடி தன்னுயிரை ஈந்தவர்களுக்கு கொம்புகளும் கோரமானபற்களும் முளைத்து விட்டன.

ஒரு முறை சிந்தித்துப் பாருங்கள்! சிங்களப் படைகள் யாழ் நகரைக் கைப்பற்றிய நாளை நாம் கொண்டாடுவோமா? நிச்சயமாகக் கொண்டாடுவோம், சிங்களம்தமிழினத்தை முழுமையாக வெற்றி கொண்டால். அப்பொழுது எங்களின் விடுதலைப் போரளிகளுக்கும் கொம்புகளும், கோரமான பற்களும் முளைக்கும்.வெற்றி பெற்றவன் திணிப்பதே வரலாறு என்று ஆகின்றது. தோற்று போனவனின் வரலாறு அவனுடனேயே புதைகுழிக்குள் புதைக்கப்படுகிறது. எமது தமிழ்மன்னர்கள் அன்று தோற்றுப் போனார்கள். அதனால் அரக்கர்கள் ஆகி விட்டார்கள்.

இப்படி அரக்கன் ஆக்கப்பட்டு விட்ட ஒரு விடுதலைவீரனின் நினைவுநாளை நாம் மகிழ்ச்சியாகக் தீபாவளி என்று கொண்டாடுகிறோம். ஆரியர்கள்தமிழினத்தை வென்றது மாத்திரம் அன்றி, வென்ற நாளை தமிழர்களையோ கொண்டாட வைத்து விட்டார்கள். இதை உணர்ந்து தமிழினம் இந்த தீபாவளியைகொண்டாடுவதை நிறுத்த வேண்டும்.

Script to get all the Concurrent Program Request details

Below is the script to get the Concurrent Program Request details by Various Users in a Particular Day.

fcpt.user_concurrent_program_name Request_Name,
fcpt.user_concurrent_program_name program_name,
‘R’,’Running’) phase,
‘M’,’No Manager’,
‘H’,’On Hold’,
‘G’,’Warning’,’N/A’) status,
round((fcr.actual_completion_date – fcr.actual_start_date),3) * 1440 as Run_Time,
round(avg(round(to_number(actual_start_date – fcr.requested_start_date),3) * 1440),2) wait_time,
fu.User_Name Requestor,
fcr.argument_text parameters,
to_char (fcr.requested_start_date, ‘MM/DD HH24:mi:SS’) requested_start,
to_char(actual_start_date, ‘MM/DD/YY HH24:mi:SS’) ACT_START,
to_char(actual_completion_date, ‘MM/DD/YY HH24:mi:SS’) ACT_COMP,


apps.fnd_concurrent_requests fcr,
apps.fnd_concurrent_programs fcp,
apps.fnd_concurrent_programs_tl fcpt,
apps.fnd_user fu

Where 1=1
— and fu.user_name = ‘DJKOCH’ ‘
— and fcr.request_id = 1565261
— and fcpt.user_concurrent_program_name = ‘Payables Open Interface Import”
and fcr.concurrent_program_id = fcp.concurrent_program_id
and fcp.concurrent_program_id = fcpt.concurrent_program_id
and fcr.program_application_id = fcp.application_id
and fcp.application_id = fcpt.application_id
and fcr.requested_by = fu.user_id
and fcpt.language = ‘US’
and fcr.actual_start_date like sysdate
— and fcr.phase_code = ‘C’
— and hold_flag = ‘Y’
–and fcr.status_code = ‘E’


Order by 1 desc;

JBO-25013 oracle.jbo.TooManyObjectsException on Web ADI Integrator


When you get a Error Something the below may be also a reason

When you Register your table


ad_dd.register_table(‘XXCUST’, ‘XX_EMPLOYEE_DETAILS_CAL’, ‘T’,10,10,90);




ad_dd.register_table(‘XXCUST’, ‘XX_EMPLOYEE_DETAILS_CAL’, ‘T’,11,10,90);



When you give the fourth parameter that is the sequence for next time then you register the same object with many times. So oracle will throw you error. The above is valid but when you refer to your Web ADI oracle will throw the Exception


Get every new post delivered to your Inbox.

Join 365 other followers