Validation at a value set
Can we have reports or any value set logic where we have used the dependent valueset or the attribute concept..
We need to have one value set lets say : Vset1 ..
this should have two attributes enabled : attribute1 (source warehouse) and attribute2 (destination warehouse).
flex value attribute1 attribute2
E10_C01 E10 C01
E10_C09 E10 C09
E10_C14 E10 C01 (this should not be allowed because attribute1 and attribute2 combination should be unique)
E40_C09 E40 C09
E40_C01 E40 C01
attribute1 and attribute2 combination should be unique...
Could some one please let us know how to go about with this requirement?
Hi,
The issue got resolved. We need to declare the variable(For Date or Time field) as XSD:String, and add regular expression for the pattern(Under Details Column for the data type).
The regular expression for the date format ddMMyyyy is
(0?[1-9]|[12][0-9]|3[01])(0?[1-9]|1[012])(19|20)?\d\d
Similarly, for Time format HH:mm, the regular expresion is
((([0-1]\d|2[0-3]):([0-5]\d))|([0-9]:([0-5]\d)))
Regards,
Subhendu
Edited by: Subhendu Sahu on Mar 31, 2010 10:10 AM
Similar Messages
-
Validating strings using value sets...
Hello,
A client requested the functionality so that a comma delimited string of item numbers could be used as criteria for a report. Validating the item numbers was not a problem except that validation occurs in a report trigger after the request has already been submitted. How do I set up a value set to use a procedure for validation?Hi,
You can check the values of your parameters in your after parameter form trigger
IF :FROMDATE IS NULL AND :BATCH IS NULL THEN
RETURN FALSE;
ELSIF :FROMDATE IS NOT NULL AND :TODATE IS NULL THEN
RETURN FALSE;
END IF;
RETURN TRUE;Regards
MP -
How to use the :$PROFILE$ token in a table validation value set
Hi Community,
Let me explain the scenario.
We have a Flex Value Set (CLIENTES SERVICIO DIRECTO) with a table validation, included in the PO Headers DFF, which shows a LOV with the Ship-to addressfrom the customer which we want to serve the goods; i.e. we are acting as a commisionists and the supplier puts the goods in the Ship-to address of the customer.
This Flex Value Set, as I mentioned, have a table validation, with the following validation table information:
Table Application: Oracle Receivables
Table Name: RA_ADDRESSES_ALL a, RA_CUSTOMERS b
Table Columnns: b.CUSTOMER_NAME Varchar2(20), a.PARTY_LOCATION_ID Varchar2(20)
Where/Order By: a.CUSTOMER_ID = b.CUSTOMER_ID
Additional Columns: a.ADDRESS1 "Dirección"(20), a.CITY "Ciudad"(10)
If we translate this to a SQL code:
select a.address1,
a.city,
a.party_location_id,
b.customer_name
from ra_addresses_all a,
ra_customers b
where a.customer_id = b.customer_id
and b.customer_id = 6283 <--- This last condition clause is for narrowing the result to the interested customer.
This select retrive us two records; for the same customer, one of them for one organization_id (let's say 85) and one of them for the other organization_id (84).
What we are looking for and want is that the LOV, which actually display the two records, shows only the ship-to site of the customer that belongs to the organization_id which belongs the user who queries or creates the Purchase Order.
I.e. Suppose that we enter to Purchasing using the responsibility assigned to the Operating Unit or Organization_id 84. We want that theLOV only shows the Ship-to Site from the customer that belongs to the Operating Unit or Organization_id 84.
I believe that we can achieve this using the :$PROFILE$ token, but we do not know how.
Any ideas?
Thanks a lot for your answer.Hi Rcana,
We have just test your suggestion and it works. We believe that the correc sentence was fnd_profile.get('profile_name'), but the value feature solve the problem. Thanks for your help.
Regards. -
Validate a value against table validation value set within PL/SQL
Hi,
I am trying to import price list lines along with Pricing attribute values.
I have to validate the uploaded values against the pricing attribute value set, before I import them into base tables.
Value set defined is of type table validation.
I wanted to know if there are any public APIs that can be used to validate the value against the Value set values within my PL/SQL procedure
Also please point me to documentation that lists various public PL/SQL APIs
Regards,
MrutyunjayYou can find functions and procedure for Value sets in packages FND_FLEX_VAL_API or FND_FLEX_VAL_UTIL.
Example : get_table_vset_select gives you the select statement of your value set. Executing this statement will allow you to validate your values. -
Special Validation Value Set - Key Flexfield
Hi Gurus...
I have a problem with my special value set.. i did this... :
FND POPID APPL_SHORT_NAME=SQLGL
CODE="GL#"
WHERE="segment2 not like '1%'"
DISPLAY="1"
DISPLAY="2"
DISPLAY="3"
DISPLAY="4"
REQUIRED=Y
VALIDATE=FULL
ID=:!ID
SEG=:!VALUE
DESC=:!MEANING
NAVIGATE=!DIR
DINSERT=N
The problem is that the SEGMENT2 of this value set is not being filtered... should filter by SEGMENT1 like '1%'. When i use the parameter associated to this value set there is no error.... always shows SEGMENT2 with all data.. without filter....
Any suggestions ??
Thanks!!
Pablo.-Use Validation Type 'Table'
Press 'Edit Information' button
Select the Table name and Column that you want to show in your list, you can restrict the list using the Where section.
Cheers! -
Hi All
I've just create a Table Validation Value Set(XX_LOV) so what this do it eliminate all the values that have been used when you submit a request.
But now when you use the COPY Button when you submit a request it looks like it's not Validating my Values Set.
I'd like to know when Value set Validation happens or how can i force Validation.
ThanksHi Deepali,
Your understanding on special valueset is incorrect.
Special validation type is used to have a KFF combination value as a single parameter, rather than having individual parameter for each segment.
You can achieve this calculation by using a table valueset , where you can can access the values of C and D by using $FLEX$.C and $FLEX$.D
All you need is to frame a query to get the desired values for E valueset.
Please refer to the 11i Application Developer Guide for more details.
Regards
Justin -
ListVal Event in Special Validation Value Set
Hi all,
Has anyone used ListVal event in Special Validation value set? I want to show list of values by giving a query using special validation.
Thanking YouUse Validation Type 'Table'
Press 'Edit Information' button
Select the Table name and Column that you want to show in your list, you can restrict the list using the Where section.
Cheers! -
Error while inserting record in Key-Flex Values Set interface
Guys
on 11.5.10.2
Actually the problem is being occurred while inserting value in Job Flex Field Value set, we have created two segment for job key flex filed, No and name, it was working fine, but since we have uploaded bulk data via api "fnd_flex_values_pkg.INSERT_ROW" which was around 100 off record, but after completion this task system is not taking new value by Values set interface, and show message "APPS-FND-01206: You entered duplicate values or sequence of value that must be unique for every record",
However, we insert the job number through api, it is inserting without error while
Interface is not taking value and raise duplicate message error,
which is APPS-FND-01206
Please Advice.Thanks for supporting dunacan
I have mentioned both of segment detail . please advice,
1.One is Job No segment
Segment1 number 10
Required Check Yes
Value set Info JOB_NO
List Type : List of Values
Security Type : No Security
Format Validation : select number 7,0 and check on number only (0-9)
Validation Type Independent
2.One is Job Name segment
Segment2 number 20
Required Check Yes
Value set Info JOB_NAME
List Type : List of Values
Security Type : No Security
Format Validation : select CHAR 60 Validation Type Independent
It was strange that how could it possible duplication value without having database,i am unable to find this issued,
Edited by: oracle0282 on Jan 17, 2011 3:32 AM -
Urgent: Table control validation of defaulted values
Hi All,
I have 5 fields in my table control. I have provided a button on the screen, if the user clicks that button, one of the fields( checkbox) is set as 'X'.
Now , I want to validate the value in this field.
The issue I have is that it is not going into the CHAIN ENCHAIN module logic to do the validation, if the value is updated through the button, but it performs validation if I update the field manually.
Please advice.
Thanks.
K KTry this in the PAI process of screen:
LOOP AT itab.
CHAIN.
FIELD: ...
MODULE CHECK_MODIFIED ON CHAIN-INPUT.
ENDCHAIN.
ENDLOOP.
Oherwise,you can add the check logic into the flow logic of the button,if the value is not valid,block it.
Edited by: Liang Zhang on May 28, 2008 4:34 AM -
Fnd_request.submit_request error with PA_SRS_DATES2 value set
Hi,
We are applications 12.0.6 with 10.2.0.3.0 database. I'm trying to submit the "PRC: Generate Draft Revenue for a Single Project" through fnd_request.submit_request and is erroring out with "PA: Error - Entered Accrue through date is not within open/future PA period". I'm able to run the same program from the application with the same parameters. I'm passing Accue date of 2009/08/31 00:00:00 from the program and I can see the same value when submitted frm the applications also.
Value set for this Accrue date parameter is "PA_SRS_DATES2". It is setup as format type "Standard Date" and maximum size is 11.
Thanks for your help,
Shree.
Here is the script
SELECT TO_CHAR (rec1.per_end_date, 'RRRR/MM/DD HH24:MI:SS')
INTO v_rev_accrue
FROM DUAL;
v_fc_req_id :=
fnd_request.submit_request (application => 'PA',
program => 'PARGDR_SINGLE',
sub_request => FALSE,
start_time => NULL,
argument1 => rec1.project_id,
argument2 => 'N',
argument3 => 'Y',
argument4 => v_rev_accrue,
argument5 => NULL,
argument6 => NULL,
argument7 => NULL,
argument8 => NULL,
argument9 => NULL,
argument10 => NULL,
argument11 => 'Y',
argument12 => 'N',
argument13 => NULL,
argument14 => NULL,
argument15 => NULL,
argument16 => NULL,
argument17 => NULL,
argument18 => 'N',
argument19 => 'N',
argument20 => 'N'
IF NVL (v_fc_req_id, 0) = 0
THEN
gv_debug_name :=
'Error in Submitting the draft revenue program program. ';
fnd_file.put_line (fnd_file.LOG, gv_debug_name);
RAISE general_error;
ELSE
COMMIT;
fnd_file.put_line (fnd_file.LOG,
'draft revenue program. Request Id:'
|| TO_CHAR (v_fc_req_id)
END IF;
Here is the log for the request submitted via fnd_request.submit_request.
Projects: Version : 12.0.0
Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
PARGDR_SINGLE module: PRC: Generate Draft Revenue for a Single Project
Current system time is 13-AUG-2009 18:59:19
Entering parmai()
...Connected to Oracle
Accrue Thru date from Command line is : 2009/08/31 00:00:00
Start of log messages from FND_FILE
End of log messages from FND_FILE
Executing request completion options...
Finished executing request completion options.
PA: Error - Entered Accrue through date is not within open/future PA period
Exceptions posted by this request:
Concurrent Request for "PRC: Generate Draft Revenue for a Single Project" has completed with error.
Concurrent request completed
Current system time is 13-AUG-2009 18:59:20
Here is the log for the request submitted via the application
Projects: Version : 12.0.0
Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
PARGDR_SINGLE module: PRC: Generate Draft Revenue for a Single Project
Current system time is 10-AUG-2009 17:12:11
Entering parmai()
...Connected to Oracle
Accrue Thru date from Command line is : 2009/08/31 00:00:00
project:196 delete:N regenerate:Y acc_thru_dt:2009/08/31
start project: end project:
Operating unit is 153Revenue is running in Normal revenue mode
Revenue is not based on specific project type...
Revenue is not based on specific organization...
Revenue is not based on specific customer...
Revenue is not based on specific Agreement...
Revenue is running for MCB/Non MCB projects...
Revenue is running for Unrelease revenue mode...
Revenue is not creating the detail report ...
Revenue Processing Parameter List
=================================
-------------- < parameter list > -----------------------
Accru Through Date ----------------------------------------> 2009/08/31
Project ID ------------------------------------------------> 196
From Project Number --------------------------------------->
To Project Number ----------------------------------------->
Adjusting Revenue Run -------------------------------------> No
Project Type ID -----------------------------------------> 0
Organization ID ------------------------------------------> 0
Customer ID ----------------------------------------------> 0
Agreement ID ----------------------------------------------> 0
Multi Currency Projects -----------------------------------> No
Release Draft Revenue -------------------------------------> No
Include Detail Report -------------------------------------> No
-------------- < End of parameter list > -----------------------
...Request ID = 714111
This concurrent request is not being rescheduled
Current system time is 10-AUG-2009 17:12:11
...about to delete revenue for project id 196
...0 draft revenues deleted
Current system time is 10-AUG-2009 17:12:11
...about to process adjustments
SELECT p.project_id, p.segment1,
p.distribution_rule, p.project_level_funding_flag,p.project_currency_code,
p.project_bil_rate_date_code,
p.project_bil_rate_type,
to_char(p.project_bil_rate_date,'YYYY/MM/DD'),
p.project_bil_exchange_rate,
p.projfunc_currency_code,
p.projfunc_bil_rate_date_code,
p.projfunc_bil_rate_type,
to_char(p.projfunc_bil_rate_date,'YYYY/MM/DD'),
p.projfunc_bil_exchange_rate,
p.revproc_currency_code,
p.funding_rate_date_code,
p.funding_rate_type,
to_char(p.funding_rate_date,'YYYY/MM/DD'),
p.funding_exchange_rate,
p.multi_currency_billing_flag,
p.assign_precedes_task,
p.enable_top_task_customer_flag,
p.enable_top_task_inv_mth_flag,
nvl(p.inv_by_bill_trans_curr_flag, 'N'),
nvl(p.revtrans_currency_type, 'PROJ_FUNC_CURR_ONLY')
FROM pa_projects p, pa_project_types t
WHERE p.project_id = :project_id
AND pa_project_utils.check_prj_stus_action_allowed(p.project_status_code,'GENERATE_REV') = 'Y'
AND :start_project_number||'x' != :end_project_number||'y'
AND p.project_type = t.project_type
AND t.project_type_class_code = 'CONTRACT'
AND EXISTS (SELECT /*+ INDEX(pf pa_summary_project_fundings_u1)*/ NULL
FROM pa_summary_project_fundings pf
WHERE pf.project_id = p.project_id
AND nvl(pf.revproc_baselined_amount, 0) != 0)
AND NOT EXISTS
(SELECT NULL
FROM pa_draft_revenues r2
WHERE r2.project_id = p.project_id
AND r2.released_date||'' is null
AND r2.generation_error_flag||'' = decode(:mass_gen,
1, 'Y', r2.generation_error_flag)
AND (EXISTS (SELECT NULL
FROM pa_expenditure_items_all i
WHERE i.project_id = p.project_id
AND i.cost_distributed_flag ||''= 'Y'
AND i.revenue_distributed_flag = 'N'
AND i.expenditure_item_date
<= NVL(TO_DATE(:acc_thru_dt,'YYYY/MM/DD'),sysdate)
AND (EXISTS (SELECT /*+ LEADING(l)*/ NULL
FROM pa_draft_revenues r, pa_cust_rev_dist_lines l
WHERE r.project_id = i.project_id
AND ((l.expenditure_item_id = i.adjusted_expenditure_item_id AND i.adjusted_expenditure_item_id is not null )
OR (l.expenditure_item_id = i.expenditure_item_id))
AND NVL(l.reversed_flag,'N') = 'N'
AND l.line_num_reversed IS NULL
AND r.project_id = l.project_id
AND r.draft_revenue_num = l.draft_revenue_num
AND (r.released_date||'' is not null
OR r.generation_error_flag||'' = decode(:mass_gen,
1, 'N', 'E')))
or exists (
select 1 from pa_expenditure_items ei2
where ei2.project_id = i.project_id
and ei2.expenditure_item_id=i.adjusted_expenditure_item_id
and ei2.revenue_distributed_flag='Y'
and ei2.raw_revenue=0))
union all
SELECT /*+ LEADING(v)*/NULL
FROM pa_events v
WHERE v.project_id = p.project_id
AND ((v.revenue_distributed_flag = 'N'
AND v.completion_date
<= NVL(TO_DATE(:acc_thru_dt,'YYYY/MM/DD'),sysdate))
OR (substr(p.distribution_rule,1,4) = 'COST'
AND v.revenue_distributed_flag = 'Y'
AND v.completion_date
> NVL(TO_DATE('2009/08/31','YYYY/MM/DD'), sysdate)))
AND (DECODE(NVL(v.bill_trans_rev_amount, 0), 0 ,
DECODE(NVL(v.zero_revenue_amount_flag, 'N'), 'Y', 1, 0),1) = 1)
AND NVL(revenue_hold_flag, 'N') = 'N'
AND EXISTS (
SELECT NULL
FROM pa_tasks t
WHERE v.task_id is not NULL
AND t.ready_to_distribute_flag = 'Y'
AND v.task_id = t.task_id
UNION ALL
SELECT NULL
FROM pa_tasks t1
WHERE v.task_id is NULL
AND t1.ready_to_distribute_flag = 'Y'
AND v.project_id = t1.project_id )
AND Exists (select null from pa_draft_revenues r,pa_cust_event_rev_dist_lines l
where l.project_id = v.project_id
AND ( l.task_id = v.task_id OR v.task_id is NULL )
AND l.event_num = v.event_num
AND NVL(l.reversed_flag,'N') = 'N'
AND l.line_num_reversed IS NULL
AND r.project_id = v.project_id
AND r.draft_revenue_num = l.draft_revenue_num
AND (r.released_date||'' is not null
OR r.generation_error_flag||'' = decode(:mass_gen,
1, 'N', 'E')))
union all
SELECT /*+ USE_CONCAT */ NULL
FROM PA_Billing_Extensions be, PA_Billing_Assignments bea
WHERE bea.active_flag = 'Y'
AND bea.billing_extension_id = be.billing_extension_id
AND (bea.project_id = p.project_id
OR bea.project_type = p.project_type
OR bea.distribution_rule = p.distribution_rule)
AND be.calling_process in ('Revenue','Both')
AND nvl(be.call_after_adj_flag, 'N') = 'Y'
AND be.trx_independent_flag = 'Y'))
Current system time is 10-AUG-2009 17:12:11
...0 projects processed for adjustments
Current system time is 10-AUG-2009 17:12:11
...about to generate revenue for project id 196
...Fetching next project
Current system time is 10-AUG-2009 17:12:11
...about to call pa_billing.bill_ext_driver( 196, 'Revenue', 'PRE', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...exiting pa_billing.bill_ext_driver( 196, 'Revenue', 'PRE', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
Leaving pauoarchn()
...no rows to process for this project.
Current system time is 10-AUG-2009 17:12:11
...generated revenue for project id 196, number 72DM000001
...about to call pa_billing.bill_ext_driver( 196, 'Revenue', 'REG', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...exiting pa_billing.bill_ext_driver( 196, 'Revenue', 'REG', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
l_inv_by_btc_flag is ...N
l_mcb_flag is ...Y
l_rpc_code is ...GBP
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
...Else loop 1
...else loop 2
...else loop 4
...else loop 5
...non_zero_amount
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
...Else loop 1
...else loop 2
...else loop 4
...else loop 5
...non_zero_amount
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Current system time is 10-AUG-2009 17:12:11
...generated revenue for automatic events for project id 196, number 72DM000001 calling loc REG
...about to call pa_billing.bill_ext_driver( 196, 'Revenue', 'POST-REG', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...exiting pa_billing.bill_ext_driver( 196, 'Revenue', 'POST-REG', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
...generated revenue for automatic events for project id 196, number 72DM000001 calling loc POST-REG
...about to call pa_billing.bill_ext_driver( 196, 'Revenue', 'POST', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...exiting pa_billing.bill_ext_driver( 196, 'Revenue', 'POST', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...Fetching next project
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
...about to call AutoAccounting
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Entering pafvsu
Allocating pafvcs structure
Allocating memory for structure, fdfkai
Allocating memory for structure, fdfkao
Allocating flex input and output structure
Assigning ptype
Calling pagtfn
Nullig out
Setting everything that does not need to be allocated
Allocating optional arrays
Checking a_line_id
Checking a_trans_ind
Checking a_param_lst
Checking a_extra_atr
Allocating required array
Allocating auto accounting elements
Describing kff and control processing options
Tune flex validation system options
Allocate main cache
Allocate additional memory for main cache
Allocate ksv if needed
Store pointer to text strings in last ksv element so we can free later
val [¿], segval [00000000]
val [00000000], segval [000000]
val [000000], segval [7210OCOA01]
val [7210OCOA01], segval [0000]
val [0000], segval [72OXLFTG]
val [72OXLFTG], segval [66101010]
val [66101010], segval [7210]
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
...returned from AutoAccounting
...about to update pe_expenditures_all for intercompany processing
Current system time is 10-AUG-2009 17:12:11
Entering parddl()
...setting error codes and bad code combination id to null
... Update draft revenues for marking autoaccounting error if any
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update draft revenues without generation error to normal state
Current system time is 10-AUG-2009 17:12:11
1 rows updated.
... Update pa_cust_event_rev_dist_lines for setting bad CCID to null
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_events for marking AutoAccounting error if any
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_events for setting revenue_distributed_flag to 'N'
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_cust_rev_dist_lines for setting bad CCID to null
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_expenditure_items_all for marking AutoAccounting error if any
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_expenditure_items_all for setting revenue_distributed_flag to 'N'
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
Leaving parddl()
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
0 rows updated with Generation error due to ccid=-1
Current system time is 10-AUG-2009 17:12:11
0 rows updated with Generation error PA_REV_GEN_ERROR
Current system time is 10-AUG-2009 17:12:11
...1 projects processed for revenue generation
Deleting automatic event for which revenue has generation error
Current system time is 10-AUG-2009 17:12:11
...about to update proj summary funding amounts
executing pa_billing.check_spf_amounts('B',196, , ) Calling check_spf_amounts...Inside the Single projects If
Current system time is 10-AUG-2009 17:12:11
...about to generate reports
SEL-SUC:72DM000001 4 1048 BP Exploration Operating DML 101 31-AUG-09 121659.83
Current system time is 10-AUG-2009 17:12:12
...completed generating reports
Process completed.
0 rows deleted from distribution_warnings table.
Start of log messages from FND_FILE
Request id is :714111
Before calling the insert event for top task_id :19839
Parameters to the insert event API :
Revenue amount is :12106.73
Bill amount is :12106.73
Project id is :196
Event Type is :BILLING
Top Task id is :19839
organization id is :239
completion date is :31-AUG-2009
event description is :Financing Fee
Return status after calling insert event is :0
error message after calling insert event is :
Before calling the insert event for top task_id :14612
Parameters to the insert event API :
Revenue amount is :109553.1
Bill amount is :109553.1
Project id is :196
Event Type is :BILLING
Top Task id is :14612
organization id is :239
completion date is :31-AUG-2009
event description is :Expenditure
Return status after calling insert event is :0
error message after calling insert event is :
End of log messages from FND_FILE
Executing request completion options...
------------- 1) PRINT -------------
Printing output file.
Request ID : 714111
Number of copies : 0
Printer : noprint
Finished executing request completion options.
Concurrent request completed successfully
Current system time is 10-AUG-2009 17:12:12
---------------------------------------------------------------------------Hi srini,
For the request submitted via the application and for the request submitted by fnd_request.submit_request, argument4 has the same value 2009/08/31 00:00:00
Thanks -
Hi,
We are applications 12.0.6 with 10.2.0.3.0 database. I'm trying to submit the "PRC: Generate Draft Revenue for a Single Project" through fnd_request.submit_request and is erroring out with "PA: Error - Entered Accrue through date is not within open/future PA period". I'm able to run the same program from the application with the same parameters. I'm passing Accue date of 2009/08/31 00:00:00 from the program and I can see the same value when submitted frm the applications also.
Value set for this Accrue date parameter is "PA_SRS_DATES2". It is setup as format type "Standard Date" and maximum size is 11.
Thanks for your help,
Shree.
Here is the script
SELECT TO_CHAR (rec1.per_end_date, 'RRRR/MM/DD HH24:MI:SS')
INTO v_rev_accrue
FROM DUAL;
fnd_file.put_line (fnd_file.LOG,
'Revenue Accrue Date is :' || v_rev_accrue
fnd_file.put_line (fnd_file.LOG, 'Parameters for GDR :');
fnd_file.put_line (fnd_file.LOG,
'Argument1 is :' || TO_CHAR (rec1.project_id)
fnd_file.put_line (fnd_file.LOG, 'Argument4 is :' || v_rev_accrue);
v_fc_req_id :=
fnd_request.submit_request (application => 'PA',
program => 'PARGDR_SINGLE',
sub_request => FALSE,
start_time => NULL,
argument1 => rec1.project_id,
argument2 => 'N',
argument3 => 'Y',
argument4 => v_rev_accrue,
argument5 => NULL,
argument6 => NULL,
argument7 => NULL,
argument8 => NULL,
argument9 => NULL,
argument10 => NULL,
argument11 => 'Y',
argument12 => 'N',
argument13 => NULL,
argument14 => NULL,
argument15 => NULL,
argument16 => NULL,
argument17 => NULL,
argument18 => 'N',
argument19 => 'N',
argument20 => 'N'
IF NVL (v_fc_req_id, 0) = 0
THEN
gv_debug_name :=
'Error in Submitting the draft revenue program program. ';
fnd_file.put_line (fnd_file.LOG, gv_debug_name);
RAISE general_error;
ELSE
COMMIT;
fnd_file.put_line (fnd_file.LOG,
'draft revenue program. Request Id:'
|| TO_CHAR (v_fc_req_id)
END IF;
Here is the log for the request submitted via fnd_request.submit_request.
Projects: Version : 12.0.0
Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
PARGDR_SINGLE module: PRC: Generate Draft Revenue for a Single Project
Current system time is 13-AUG-2009 18:59:19
Entering parmai()
...Connected to Oracle
Accrue Thru date from Command line is : 2009/08/31 00:00:00
Start of log messages from FND_FILE
End of log messages from FND_FILE
Executing request completion options...
Finished executing request completion options.
PA: Error - Entered Accrue through date is not within open/future PA period
Exceptions posted by this request:
Concurrent Request for "PRC: Generate Draft Revenue for a Single Project" has completed with error.
Concurrent request completed
Current system time is 13-AUG-2009 18:59:20
Here is the log for the request submitted via the application
Projects: Version : 12.0.0
Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
PARGDR_SINGLE module: PRC: Generate Draft Revenue for a Single Project
Current system time is 10-AUG-2009 17:12:11
Entering parmai()
...Connected to Oracle
Accrue Thru date from Command line is : 2009/08/31 00:00:00
project:196 delete:N regenerate:Y acc_thru_dt:2009/08/31
start project: end project:
Operating unit is 153Revenue is running in Normal revenue mode
Revenue is not based on specific project type...
Revenue is not based on specific organization...
Revenue is not based on specific customer...
Revenue is not based on specific Agreement...
Revenue is running for MCB/Non MCB projects...
Revenue is running for Unrelease revenue mode...
Revenue is not creating the detail report ...
Revenue Processing Parameter List
=================================
-------------- < parameter list > -----------------------
Accru Through Date ----------------------------------------> 2009/08/31
Project ID ------------------------------------------------> 196
From Project Number --------------------------------------->
To Project Number ----------------------------------------->
Adjusting Revenue Run -------------------------------------> No
Project Type ID -----------------------------------------> 0
Organization ID ------------------------------------------> 0
Customer ID ----------------------------------------------> 0
Agreement ID ----------------------------------------------> 0
Multi Currency Projects -----------------------------------> No
Release Draft Revenue -------------------------------------> No
Include Detail Report -------------------------------------> No
-------------- < End of parameter list > -----------------------
...Request ID = 714111
This concurrent request is not being rescheduled
Current system time is 10-AUG-2009 17:12:11
...about to delete revenue for project id 196
...0 draft revenues deleted
Current system time is 10-AUG-2009 17:12:11
...about to process adjustments
SELECT p.project_id, p.segment1,
p.distribution_rule, p.project_level_funding_flag,p.project_currency_code,
p.project_bil_rate_date_code,
p.project_bil_rate_type,
to_char(p.project_bil_rate_date,'YYYY/MM/DD'),
p.project_bil_exchange_rate,
p.projfunc_currency_code,
p.projfunc_bil_rate_date_code,
p.projfunc_bil_rate_type,
to_char(p.projfunc_bil_rate_date,'YYYY/MM/DD'),
p.projfunc_bil_exchange_rate,
p.revproc_currency_code,
p.funding_rate_date_code,
p.funding_rate_type,
to_char(p.funding_rate_date,'YYYY/MM/DD'),
p.funding_exchange_rate,
p.multi_currency_billing_flag,
p.assign_precedes_task,
p.enable_top_task_customer_flag,
p.enable_top_task_inv_mth_flag,
nvl(p.inv_by_bill_trans_curr_flag, 'N'),
nvl(p.revtrans_currency_type, 'PROJ_FUNC_CURR_ONLY')
FROM pa_projects p, pa_project_types t
WHERE p.project_id = :project_id
AND pa_project_utils.check_prj_stus_action_allowed(p.project_status_code,'GENERATE_REV') = 'Y'
AND :start_project_number||'x' != :end_project_number||'y'
AND p.project_type = t.project_type
AND t.project_type_class_code = 'CONTRACT'
AND EXISTS (SELECT /*+ INDEX(pf pa_summary_project_fundings_u1)*/ NULL
FROM pa_summary_project_fundings pf
WHERE pf.project_id = p.project_id
AND nvl(pf.revproc_baselined_amount, 0) != 0)
AND NOT EXISTS
(SELECT NULL
FROM pa_draft_revenues r2
WHERE r2.project_id = p.project_id
AND r2.released_date||'' is null
AND r2.generation_error_flag||'' = decode(:mass_gen,
1, 'Y', r2.generation_error_flag)
AND (EXISTS (SELECT NULL
FROM pa_expenditure_items_all i
WHERE i.project_id = p.project_id
AND i.cost_distributed_flag ||''= 'Y'
AND i.revenue_distributed_flag = 'N'
AND i.expenditure_item_date
<= NVL(TO_DATE(:acc_thru_dt,'YYYY/MM/DD'),sysdate)
AND (EXISTS (SELECT /*+ LEADING(l)*/ NULL
FROM pa_draft_revenues r, pa_cust_rev_dist_lines l
WHERE r.project_id = i.project_id
AND ((l.expenditure_item_id = i.adjusted_expenditure_item_id AND i.adjusted_expenditure_item_id is not null )
OR (l.expenditure_item_id = i.expenditure_item_id))
AND NVL(l.reversed_flag,'N') = 'N'
AND l.line_num_reversed IS NULL
AND r.project_id = l.project_id
AND r.draft_revenue_num = l.draft_revenue_num
AND (r.released_date||'' is not null
OR r.generation_error_flag||'' = decode(:mass_gen,
1, 'N', 'E')))
or exists (
select 1 from pa_expenditure_items ei2
where ei2.project_id = i.project_id
and ei2.expenditure_item_id=i.adjusted_expenditure_item_id
and ei2.revenue_distributed_flag='Y'
and ei2.raw_revenue=0))
union all
SELECT /*+ LEADING(v)*/NULL
FROM pa_events v
WHERE v.project_id = p.project_id
AND ((v.revenue_distributed_flag = 'N'
AND v.completion_date
<= NVL(TO_DATE(:acc_thru_dt,'YYYY/MM/DD'),sysdate))
OR (substr(p.distribution_rule,1,4) = 'COST'
AND v.revenue_distributed_flag = 'Y'
AND v.completion_date
> NVL(TO_DATE('2009/08/31','YYYY/MM/DD'), sysdate)))
AND (DECODE(NVL(v.bill_trans_rev_amount, 0), 0 ,
DECODE(NVL(v.zero_revenue_amount_flag, 'N'), 'Y', 1, 0),1) = 1)
AND NVL(revenue_hold_flag, 'N') = 'N'
AND EXISTS (
SELECT NULL
FROM pa_tasks t
WHERE v.task_id is not NULL
AND t.ready_to_distribute_flag = 'Y'
AND v.task_id = t.task_id
UNION ALL
SELECT NULL
FROM pa_tasks t1
WHERE v.task_id is NULL
AND t1.ready_to_distribute_flag = 'Y'
AND v.project_id = t1.project_id )
AND Exists (select null from pa_draft_revenues r,pa_cust_event_rev_dist_lines l
where l.project_id = v.project_id
AND ( l.task_id = v.task_id OR v.task_id is NULL )
AND l.event_num = v.event_num
AND NVL(l.reversed_flag,'N') = 'N'
AND l.line_num_reversed IS NULL
AND r.project_id = v.project_id
AND r.draft_revenue_num = l.draft_revenue_num
AND (r.released_date||'' is not null
OR r.generation_error_flag||'' = decode(:mass_gen,
1, 'N', 'E')))
union all
SELECT /*+ USE_CONCAT */ NULL
FROM PA_Billing_Extensions be, PA_Billing_Assignments bea
WHERE bea.active_flag = 'Y'
AND bea.billing_extension_id = be.billing_extension_id
AND (bea.project_id = p.project_id
OR bea.project_type = p.project_type
OR bea.distribution_rule = p.distribution_rule)
AND be.calling_process in ('Revenue','Both')
AND nvl(be.call_after_adj_flag, 'N') = 'Y'
AND be.trx_independent_flag = 'Y'))
Current system time is 10-AUG-2009 17:12:11
...0 projects processed for adjustments
Current system time is 10-AUG-2009 17:12:11
...about to generate revenue for project id 196
...Fetching next project
Current system time is 10-AUG-2009 17:12:11
...about to call pa_billing.bill_ext_driver( 196, 'Revenue', 'PRE', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...exiting pa_billing.bill_ext_driver( 196, 'Revenue', 'PRE', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
Leaving pauoarchn()
...no rows to process for this project.
Current system time is 10-AUG-2009 17:12:11
...generated revenue for project id 196, number 72DM000001
...about to call pa_billing.bill_ext_driver( 196, 'Revenue', 'REG', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...exiting pa_billing.bill_ext_driver( 196, 'Revenue', 'REG', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
l_inv_by_btc_flag is ...N
l_mcb_flag is ...Y
l_rpc_code is ...GBP
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
...Else loop 1
...else loop 2
...else loop 4
...else loop 5
...non_zero_amount
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
...Else loop 1
...else loop 2
...else loop 4
...else loop 5
...non_zero_amount
Leaving pauoarchn()
Leaving pauoarchn()
Leaving pauoarchn()
Current system time is 10-AUG-2009 17:12:11
...generated revenue for automatic events for project id 196, number 72DM000001 calling loc REG
...about to call pa_billing.bill_ext_driver( 196, 'Revenue', 'POST-REG', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...exiting pa_billing.bill_ext_driver( 196, 'Revenue', 'POST-REG', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
...generated revenue for automatic events for project id 196, number 72DM000001 calling loc POST-REG
...about to call pa_billing.bill_ext_driver( 196, 'Revenue', 'POST', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...exiting pa_billing.bill_ext_driver( 196, 'Revenue', 'POST', '2009/08/31', 714111 )
Current system time is 10-AUG-2009 17:12:11
...Fetching next project
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
...about to call AutoAccounting
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Entering pafvsu
Allocating pafvcs structure
Allocating memory for structure, fdfkai
Allocating memory for structure, fdfkao
Allocating flex input and output structure
Assigning ptype
Calling pagtfn
Nullig out
Setting everything that does not need to be allocated
Allocating optional arrays
Checking a_line_id
Checking a_trans_ind
Checking a_param_lst
Checking a_extra_atr
Allocating required array
Allocating auto accounting elements
Describing kff and control processing options
Tune flex validation system options
Allocate main cache
Allocate additional memory for main cache
Allocate ksv if needed
Store pointer to text strings in last ksv element so we can free later
val [¿], segval [00000000]
val [00000000], segval [000000]
val [000000], segval [7210OCOA01]
val [7210OCOA01], segval [0000]
val [0000], segval [72OXLFTG]
val [72OXLFTG], segval [66101010]
val [66101010], segval [7210]
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
...returned from AutoAccounting
...about to update pe_expenditures_all for intercompany processing
Current system time is 10-AUG-2009 17:12:11
Entering parddl()
...setting error codes and bad code combination id to null
... Update draft revenues for marking autoaccounting error if any
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update draft revenues without generation error to normal state
Current system time is 10-AUG-2009 17:12:11
1 rows updated.
... Update pa_cust_event_rev_dist_lines for setting bad CCID to null
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_events for marking AutoAccounting error if any
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_events for setting revenue_distributed_flag to 'N'
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_cust_rev_dist_lines for setting bad CCID to null
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_expenditure_items_all for marking AutoAccounting error if any
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
... Update pa_expenditure_items_all for setting revenue_distributed_flag to 'N'
Current system time is 10-AUG-2009 17:12:11
0 rows updated.
Leaving parddl()
Current system time is 10-AUG-2009 17:12:11
Current system time is 10-AUG-2009 17:12:11
0 rows updated with Generation error due to ccid=-1
Current system time is 10-AUG-2009 17:12:11
0 rows updated with Generation error PA_REV_GEN_ERROR
Current system time is 10-AUG-2009 17:12:11
...1 projects processed for revenue generation
Deleting automatic event for which revenue has generation error
Current system time is 10-AUG-2009 17:12:11
...about to update proj summary funding amounts
executing pa_billing.check_spf_amounts('B',196, , ) Calling check_spf_amounts...Inside the Single projects If
Current system time is 10-AUG-2009 17:12:11
...about to generate reports
SEL-SUC:72DM000001 4 1048 AP Exploration Operating DML 101 31-AUG-09 121659.83
Current system time is 10-AUG-2009 17:12:12
...completed generating reports
Process completed.
0 rows deleted from distribution_warnings table.
Start of log messages from FND_FILE
Request id is :714111
Before calling the insert event for top task_id :19839
Parameters to the insert event API :
Revenue amount is :12106.73
Bill amount is :12106.73
Project id is :196
Event Type is :BILLING
Top Task id is :19839
organization id is :239
completion date is :31-AUG-2009
event description is :Financing Fee
Return status after calling insert event is :0
error message after calling insert event is :
Before calling the insert event for top task_id :14612
Parameters to the insert event API :
Revenue amount is :109553.1
Bill amount is :109553.1
Project id is :196
Event Type is :BILLING
Top Task id is :14612
organization id is :239
completion date is :31-AUG-2009
event description is :Expenditure
Return status after calling insert event is :0
error message after calling insert event is :
End of log messages from FND_FILE
Executing request completion options...
------------- 1) PRINT -------------
Printing output file.
Request ID : 714111
Number of copies : 0
Printer : noprint
Finished executing request completion options.
Concurrent request completed successfully
Current system time is 10-AUG-2009 17:12:12
---------------------------------------------------------------------------Duplicate thread.
fnd_request.submit_request error with PA_SRS_DATES2 value set
fnd_request.submit_request error with PA_SRS_DATES2 value set -
Parent Child Value Sets for Item Categories
I've tried to set up parent-child value sets, not independent-dependent sets for Item Categories but in vain. So, if Item Category has 2 segments - Category & Sub-Category; Sub-Category only shows valid values for a category. For example, if Category is 19 (Tools), the LOV for 2nd segment would only show 28 (Large Tools), 29 (Heavy Tools) etc.
Creating an independent-dependent combination displays all values for the independent & dependent sets.
Just looking for help here.
Thanks,
SanjibKarthik, Sandeep and Hugh
Thanks for your responses. We greatly appreciate you taking the time to reply to this thread. My e-mail is [email protected], that is if you'd like to send any documents.
Basically, this is what we were looking for -
The category structure is
Equipment 1 - Spare 1,
Equipment 1 - Spare 2,
Equipment 2 - Spare 1,
Tools - Large,
Tools - Small,
etc.
When selecting Codes for this structure, if I choose 'Equipment 1' for 1st segment, LOV for 2nd segment would only show 'Spare 1', 'Spare 2'. Similarly, If I choose 'Tools', I only see 'Large', 'Small' for Segment 2.
Thanks,
Sanjib -
How to reuse a value set in the filter into an LMD process
Using apex 3.2, I'm wondering how to re-use the value currently set into the filter (interactive report) into a LMD process attached to a button created on the same page.
The process on Submit - after validations and computations, I presume, should look like to the following statement, but in a dynamic way:
begin
insert into table2 select * from table1
where study = 'ABCD';
end;
I tested the following clauses options, which none of them work:
a) where study = :STUDY
b) where study = :IR_STUDY
setting the debbug to on, I could realize that the report was based on (apparently, APEX generates APXWS_EXPR_1 bind variable for the first parameter and APXWS_EXPR_2 if a second parameter is used into the filter, and so on...) :
where ("STUDY" = :APXWS_EXPR_1)
and then saw :
0.28: IR binding: ":APXWS_EXPR_1"="APXWS_EXPR_1" value="ABCD"
0.28: IR binding: ":APXWS_MAX_ROW_CNT"="APXWS_MAX_ROW_CNT" value="10000"
of course, I thought that the clause 'where ("STUDY" = :APXWS_EXPR_1)' could work. Unfortunaltely, not.
any king of support is welcome.
Thanks a lot,
Brunobut I don't know how to execute it from putty ? Can some one help me.Use the same command. Just make sure you are logged in as applmgr user and source the application env file before you run the command. Also, make sure you issue the command in a directory where applmgr has read/write privilege.
How to Load Value Set Values When Using Fndload To Load A Concurrent Program [ID 252853.1]
Tips About FNDLOAD [ID 735338.1]
How To Download A Single Flexfield Structure Using FNDLOAD? [ID 745689.1]
Download Multiple Flexfields From FNDLOAD [ID 316600.1]
Thanks,
Hussein -
Dear Users,
I am facing one issue in HRMS:
i have a list of jobs defined in a translated value set.
whenever i am updating one value in the value set the changes are not affecting the job list.
Please advice.
ThanksHi Wmaarbani,
What is the validation type on your value_set. Is it translatable Dependent ?
You can search for the values from -
Navigate to Application Developer --> Flexfield --> Key --> Values
On this form, you will see a small Globe on the menu bar.. make sure all the translatable values are updated.
Cheers,
Vignesh -
Verify a value against value set
Hi,
I am trying to import price list lines along with Pricing attribute values.
I have to validate the uploaded values against the pricing attribute value set, before I import them into base tables.
Value set defined is of type table validation.
I wanted to know if there are any public APIs that can be used to validate the value against the Value set values within my PL/SQL procedure
Also please point me to documentation that lists various public PL/SQL APIs
Regards,
MrutyunjayHi,
You can query the fnd_flex_values or fnd_flex_value_segments_vl to find the name of the value set defined.
Another point is that the Value Set is defined of validation type Table so the values are dependent on the base tables.
There are no such API's to cater the need for Verfying a Value against a Value Set.
If u want to search for public API's go to the metalink.
Regards
Maybe you are looking for
-
Linking to a Folder View of a PDF Portfolio - feature no longer working - please advise
Hi, I am no longer able to link to a Folder View of a PDF Portfolio: Within a PDF portfolio i need to link from a PDF to a folder view in the Portfolio. I am using Link Action - Go to Page View. This used to work for me - very important feature that
-
Cannot preview videos and audio files
I have Adobe Bridge cs3 2.1.1.9 and Version Cue cs3 3.1 installed and I am unable to preview my video files. Also, I am having trouble with playback of .wav files as well. I have tested the .wav files with a media info software and it told me that I
-
Performance meter in weblogic console
All, Semi new to memory analysis on the server side (distributed garbage collection and all). I was rather used to doing client application memory leak analysis. Are there any good starter guides for memory analysis when doing load testing? I am curr
-
I need to back up files off of my laptop (windows XP) which does not have iTunes on it (work laptop, no admin privledges). Can I use my Nano (2gen) in disc mode to move the files and then replace once I get the laptop back from IT? They recommended b
-
Wifi dropping - What worked for me.
I know there are a lot of wifi issues out there but here's what was happening for me. My iPhone 4 would drop the wifi connection enough so that I just turned off wifi completely and used 3G all the time. This has been happening for a while now. Then