Count issue for Duplicate values
Business Objects Infoview XI Web Intelligence Doc
I am trying to find out users who have more than 1 monitor and display the count sperately on the report
Result object:- (these are all fields of the monitor table)
Serial number (monitor)
CI ID (staff number)
Instance ID (database unique ID)
Instance ID is the database instance which is unique, CI ID is the staff number of the user
I have created a variable, qualification as u201Cmeasureu201D The variable is constructed as followed
=Count([CI ID]) Where([Instance ID] >"1")
If I add the as a column to the CI ID column it gives me the number of instances for that file number which is what I want to see. I can then filter this to get show staff numbers that have 2 Monitors. Even though I filter the operand type value(s) for list is greyed out
The issue is I want a total count of the users that have 2 monitors but if I put the CI object on its own it gives me the total number of instances in table rather than giving me a total count of users that have 2 monitors
How do I get the total count of users with more than 1 monitor?
Please create two web intelligence variables:
The first one with the name LocalCount and the following formula:
=If (Count([[Instance ID]];Distinct) In ([[CI ID]]) >= 2) Then 1 Else 0
The second one will be the total number of users having more that one monitor. Let's name this TotalUsersMultipleMonitors
=sum([[LocalCount]]) In Report
Display the second variable ( ie. TotalUsersMultipleMonitors ) in a standalone cell.
Regards,
Stratos
Similar Messages
-
Fraudulent digital certificates issued for high-value websites, iOS patch ?
http://www.zdnet.com/blog/security/microsoft-warns-fraudulent-digital-certificat es-issued-for-high-value-websites/8488?tag=nl.e589
http://www.h-online.com/security/news/item/SSL-meltdown-forces-browser-developer s-to-update-1213358.html
this obviously means that iOS could be vulnerable. Mozilla has patched Firefox (all versions), MS just pushed an update, Google patched Chrome already a few days ago, how about Safari and iOS?
edit: does iOS use OSCP validation?I see Safari desktop supports OCSP checking - if manually activated - but does Safari mobile too? as there's hardly any setting available for Safari on idevices it's hard to know...
-
Loop not working for check of duplicate values in a repeating table
I have a form that is used for marking down problem items, describing the problems and assigning a value to the specified item. In some cases the problems belong to the same class. When they do, the value associated with the problem should only be marked once. If another problem in the same class is documented the value should not be recorded the second time. I have a variable that is called based on a switch statement in the exit event of the field that records the problem item number. The script in the variable is then supposed to check for duplicate values in the table. If no other problem item in that class is selected, then the problem value should be assigned a number. If another item from the same class has already been entered, then the problem value should just be left blank. I will paste the script for the variable below as well as the switch statement. When I used to call the variable based upon the change event for the problem item, the script work. At that time, the switch statement was related to a drop-down menu. We decided to get rid of the drop-down and just have the used type the item number. But to do so, I had to move the switch statement to the exit event for the field. when I did this, the script in the variable no longer worked properly. Here is the switch statment followed by the script in the variable:
this.rawValue = this.rawValue.toLowerCase();
var bEnableTextField = true;
var i = "Inspection Criteria: ";
var r = "Required Corrections: ";
switch (this.rawValue)
case "1a": // 1a- First debit option
CorrectionsText.CorrectionLang = r+"Correction description for 1st debit";
ViolCorrSection.ViolationsText.DebitVal = "C";
ViolCorrSection.Reference.RefLanguage = i+"1st debit reference";
break;
case "1b": // 1b- Second debit option
CorrectionsText.CorrectionLang = r+"Correction description for 2nd debit";
ViolCorrSection.Reference.RefLanguage = i+"2nd debit reference";
myScript.group1();
break; //the script continues for various item numbers...
________________ variable script ________________________
function group1()
//Used in checking duplication of violations
var oFields = xfa.resolveNodes("form1.MAINBODYSUB.ViolationsTableSubform.ViolationsTable.ViolCorrSectio n[*].ViolationsText.ItemNo"); // looks to resolve the repeating rows
var nNodesLength = oFields.length; //assigns the number of rows to a variable
var currentRow = xfa.resolveNode("form1.MAINBODYSUB.ViolationsTableSubform.ViolationsTable.ViolCorrSection ").index;
var currentDebit = xfa.resolveNode("form1.MAINBODYSUB.ViolationsTableSubform.ViolationsTable.ViolCorrSection [" + currentRow + "].ViolationsText.DebitVal");
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) // this loops through Item Numbers looking for duplicate violations
//console.println("nNodeCount: " + nNodeCount);
var nFld = xfa.resolveNode("form1.MAINBODYSUB.ViolationsTableSubform.ViolationsTable.ViolCorrSection [" + nNodeCount + "]");
//console.println("nFld.ViolationsText.ItemNo: " + nFld.ViolationsText.ItemNo.rawValue);
if (nFld.ViolationsText.ItemNo.rawValue == "1a" || nFld.ViolationsText.ItemNo.rawValue == "1b" || nFld.ViolationsText.ItemNo.rawValue == "1c" || nFld.ViolationsText.ItemNo.rawValue == "1d") // looks for other 1s
currentDebit.rawValue = "";
nNodeCount = nNodesLength; // stop loop
else
currentDebit.rawValue = "5";
So, if you enter 1b the first time, you should get a value of 5 appearing in the debit value field. If you enter 1c next, because it belongs to the same group of class of problem items, there should be no value assigned. What happens now is that the values for 1b and 1c don't appear at all because the form thinks that the first 1b entry already existed.
Any ideas? I have a stripped down version of the form that I can email to someone for reference if that would help. Thanks
P.S. I am working with LiveCycle Designer ES 8.2.1....Hi,
I can have a look at your form, but can you host it somewhere like Acrobat.com or google docs and add a link to it here.
Regards
Bruce -
Customize Alert messages for checking duplicate value and Success alert
Hi All,
I want to show two alert against the same "Submit" button to--
1. Alert messages for checking duplicate value and show the Duplicate value found alert and
2. Success Alert if the form is success to commit and no duplicate value found.
I did all thing but when alert-1 shows and i pressed the ok button of the alert then the second alert also shows which i don't want to show.
Which i can do in this issue? Have there anyone to help me!
ArifHi Manu,
I have placed the following code
1. against the Submit button--
if error_code=40508 then
commit_form;
elsif :USERDELETION.CANCELLATION_USERID is not null then
do_key('COMMIT_FORM');
else null;
end if;
2. Code against the key-commit trigger in the form level--
commit_form;
DECLARE
vAlert NUMBER;
BEGIN
set_alert_property('ALERT_TO_VERIFY',ALERT_MESSAGE_TEXT, 'Your Form has successfully submitted and your Reference id is '||:USERDELETION.REF_NO);
vAlert:=SHOW_ALERT('ALERT_TO_VERIFY');
END;
3. Code against the on-error trigger in the form level--
DECLARE
vAlert NUMBER;
BEGIN
if ERROR_CODE = 40508 then
set_alert_property('ERROR_ALERT',ALERT_MESSAGE_TEXT, 'This user deletion request has already submitted of the user named '||'"'||:USERDELETION.FULLNAME||'"');
vAlert:=SHOW_ALERT('ERROR_ALERT');
elsif
ERROR_CODE = 40202 then
set_alert_property('ERROR_ALERT',ALERT_MESSAGE_TEXT, 'Existing userid must be filled-up !');
vAlert:=SHOW_ALERT('ERROR_ALERT');
else
message(error_type||to_char(error_text)||': '||error_text);
end if;
END;
If there have any confusion, please ask me.
Arif -
Play Count for Duplicate tracks
It will be nice if we can have an option for every track on enabling which if any duplicate of it is played, the 'Play count' of all duplicates is increased by 1..
Otherwise, the minor trouble is .. I love a song (say Here Comes the Sun) and have listened to it hundreds of times and recently got hold of a better Bit Rate version of it. Obviously, I will like to listen to the better bit rate track..but this will start me from 0 play count. This may be a slight bother if one is too fussy about smart playlists...
Or is there a way out..?Yep, easy. Go to Doug's Apple Scripts for iTunes...
http://dougscripts.com/itunes/index.php
and there you will find a few for adjusting playcounts. I have a couple I use that work great. The main one I use you pick the track, hit the script, type in the number of counts you want to increase or decrease the track and then hit the PLUS or the MINUS button and it adjusts the track,
So you find Here Comes The Sun in a higher bit rate. You old one say a play count of 27. Select the new track, hit the script, type 27, hit PLUS now the new track says 27. Delete the old track. Tah dah!
Patrick -
Count for distinct values ...
Dear Team,
I have following situation at hand...
COLUMN1 COLUMN2 COLUMN3
TECH111 A11111 MATERAL1
TECH111 A11112 MATERAL2
TECH111 A11112 MATERAL3
TECH111 A11113 MATERAL4
TECH111 A11113 MATERAL5
TECH111 A11114 MATERAL6
TECH111 A11115 MATERAL7
TECH111 A11116 MATERAL8
The value in column1 is TECH111
Now i want to count the number of values appearing in column2
i.e.A11111 appears 1 time, A11112 and A11113 appears 2 time and so on..
So the final output i need is shown below..
COLUMN1 COLUMN2 COLUMN3 COLUMN4
TECH111 A11111 MATERAL1 1
TECH111 A11112 MATERAL2 2
TECH111 A11112 MATERAL3 2
TECH111 A11113 MATERAL4 2
TECH111 A11113 MATERAL5 2
TECH111 A11114 MATERAL6 1
TECH111 A11115 MATERAL7 1
TECH111 A11116 MATERAL8 1
kindly give me some tips to achieve this
Regards
nic...Nic,
Use the formula
=CountAll(<col2>) In (<col1>,<col2>)
Regards,
Harry -
Item Conversion Template Issue for Oracle Migration - Copy functionality
Hi,
I am working on Migration project which is from Radius ERP to Oracle 11.5.10.2.
Currently working on Item Conversion. This Item conversion having the fileds like (ORGANIZATION_ID,SEGMENT1,DESCRIPTION,ITEM_TYPE,COST_OF_SALES_ACCOUNT,SALES_ACCOUNT,ATTRIBUTE_CATEGORY,ATTRIBUTE1,ATTRIBUTE2,ATTRIBUTE3,ATTRIBUTE4,ATTRIBUTE5,ATTRIBUTE6,ATTRIBUTE7,ATTRIBUTE8,ATTRIBUTE9,ATTRIBUTE10,ATTRIBUTE11,ATTRIBUTE12,ATTRIBUTE13,ATTRIBUTE14,ATTRIBUTE15,GLOBAL_ATTRIBUTE10,REF_INVENTORY_ITEM_ID,REF_ORGANIZATION_ID).
I have validated those fields and loaded into interfacing to Oracle Successfully in the master Org and Validated through Frontend.
when I close the form, I will be receiving the below warning message and telling that Template id needs to be assign to the item before assigning item to the Org. The message is showing like
"*You have not applied a template to this item, please apply a template before assigning this item to an ORG.*"
Please find the below package which I wrote for this conversion requirement.
The customer is saying like need to achieve the copy functionality based on the "REF_INVENTORY_ITEM_ID and REF_ORGANIZATION_ID".
The Issue is am not able to handle the copy functionality and getting above message. kindly refer the package and suggest me where i am doing the mistake. Its high priority issue for me.
Thanks in advance.
CREATE OR REPLACE PACKAGE APPS.xxxx_inv_items_conv_pkg
AS
PROCEDURE xxx_item_conversion_proc (
errbuf OUT VARCHAR2,
retcode OUT VARCHAR2,
p_org_id IN NUMBER,
-- p_commit_point IN NUMBER,
p_load_code IN VARCHAR2
IS
<<Local Variables Declaration>> <<For space limit deleted these variables>>
CURSOR cur_item_master (pc_org_code VARCHAR2)
IS
SELECT itemstg.*
FROM xxx_inv_system_items_stg itemstg
WHERE itemstg.organization_id = pc_org_code
AND itemstg.status_flag IS NULL;
CURSOR cur_item_master_dup (pc_org_code VARCHAR2)
IS
SELECT itemstg.segment1, itemstg.organization_id
FROM xxx_inv_system_items_stg itemstg
WHERE itemstg.ROWID <
(SELECT MAX (b.ROWID)
FROM xxx_inv_system_items_stg b
WHERE b.segment1 = itemstg.segment1
AND b.organization_id = itemstg.organization_id
AND b.organization_id = pc_org_code
AND itemstg.status_flag IS NULL
AND b.status_flag IS NULL);
BEGIN
IF p_load_code = 'Insert'
THEN
l_transaction_type := 'CREATE'; -- Default Value in I/F Table
ELSIF p_load_code = 'Update'
THEN
l_transaction_type := 'UPDATE'; -- Default Value in I/F Table
END IF;
DBMS_OUTPUT.put_line ( 'Validation Starts At :'
|| TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS')
--Checking for Duplicate Records items
BEGIN
UPDATE xxx_inv_system_items_stg a
SET a.status_flag = 'E',
a.error_message = 'Duplicate Record'
WHERE a.ROWID >
ANY (SELECT b.ROWID
FROM xxx_inv_system_items_stg b
WHERE a.segment1 = b.segment1
AND a.organization_id = b.organization_id)
AND a.organization_id = p_org_id
AND a.status_flag IS NULL;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Exception in updating duplicates'
|| SQLERRM
END;
DBMS_OUTPUT.put_line ('CheckPoint: Duplicate Record');
BEGIN
SELECT organization_id
INTO l_organization_id
FROM org_organization_definitions
WHERE organization_id = p_org_id;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
DBMS_OUTPUT.PUT_LINE(p_org_id||' Org Does Not Exist');
-- p_retcode := '2';
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Exception in Getting Org Id'||'Cannot Proceed');
-- p_retcode := '2';
END ;
DBMS_OUTPUT.put_line ('CheckPoint: Orgcode' || l_organization_id);
/* IF p_retcode = '2'
THEN
RETURN;
END IF;*/
--Block : Setting Master and Validation Orgs Flags
BEGIN
SELECT DECODE (master_organization_id, l_organization_id, 'Y', 'N'),
master_organization_id
INTO l_master_org,
l_master_org_id
FROM mtl_parameters
WHERE organization_id = l_organization_id;
EXCEPTION
WHEN OTHERS
THEN
l_master_org := 'N';
l_master_org_id := NULL;
DBMS_OUTPUT.PUT_LINE(p_org_id||' Org Does Not Exist');
END ;
DBMS_OUTPUT.put_line ('master_organization_id');
SELECT fnd_profile.VALUE ('USER_ID')
INTO l_user_id
FROM DUAL;
-- Block : Set the SET_PROCESS_ID
l_set_process_id := l_organization_id;
l_insert_count := 0;
LOOP
BEGIN
SELECT COUNT (segment1)
INTO l_insert_count
FROM mtl_system_items_interface
WHERE set_process_id = l_set_process_id
AND transaction_type = l_transaction_type
AND process_flag = 1;
EXCEPTION
WHEN OTHERS
THEN
l_insert_count := 0;
END;
EXIT WHEN l_insert_count = 0;
l_set_process_id := l_set_process_id + 10;
END LOOP;
DBMS_OUTPUT.put_line ('SET PROCESS ID -l_insert_count ' || l_insert_count);
IF p_load_code = 'Insert'
THEN
BEGIN
FOR recitem_data IN cur_item_master_dup (p_org_id)
LOOP
UPDATE xxx_inv_system_items_stg
SET status_flag = l_processed_flag,
error_message = l_error_message
WHERE segment1 = recitem_data.segment1
AND organization_id = recitem_data.organization_id
AND status_flag IS NULL;
COMMIT;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ( 'Update of Duplicates Failed : '
|| SQLCODE
|| '--'
|| SQLERRM
END ;
END IF;
FOR recitem_data IN cur_item_master (p_org_id)
LOOP
<<Local Variables Declaration>> <<For space limit deleted these variables>>
IF p_load_code = 'Update'
THEN
l_error_message := 'Update Mode' || l_error_delimiter;
END IF;
--l_count := -1;
BEGIN
DBMS_OUTPUT.put_line ('CheckPoint: ItemValidationStart');
SELECT DISTINCT inventory_item_id,
restrict_subinventories_code,
restrict_locators_code
INTO l_inventory_item_id,
l_restrict_subinventories_code,
l_restrict_locators_code
FROM apps.mtl_system_items_b msi
WHERE msi.organization_id = l_organization_id
AND msi.segment1 = UPPER (recitem_data.segment1);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_count := 0;
-- l_processed_flag := 'F';
DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||l_processed_flag);
DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||recitem_data.ref_inventory_item_id);
WHEN OTHERS
THEN
l_count := -1;
-- l_processed_flag := 'F';
DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP' || l_inventory_item_id||'-'||l_processed_flag);
END ;
DBMS_OUTPUT.put_line ('inventory_item_id - AFTER MAIN LOOP'||recitem_data.ref_inventory_item_id);
IF l_count = -1
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Exception - Checking Item already Present'
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('Exception - Checking Item already Present'||l_processed_flag);
ELSIF (l_count > 0 AND p_load_code = 'Insert')
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Item Already Exists In '
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('Exception - Checking Item already Present1'||l_processed_flag);
ELSIF (l_count = 0 AND p_load_code = 'Update')
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Item Not Present In '
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('Exception - Checking Item already Present2'||l_processed_flag);
END IF;
BEGIN
SELECT count(*)
INTO l_seg_count
FROM apps.mtl_system_items_b msi
WHERE msi.organization_id = l_organization_id
AND msi.segment1 = UPPER (recitem_data.segment1);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_seg_count := 0;
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Item Not Present In Oracle'
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('inventory_item_id - l_seg_count ' ||l_seg_count||'-'||l_processed_flag );
WHEN OTHERS
THEN
l_seg_count := -1;
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Item Not Present In Oracle'
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
END ;
IF p_load_code = 'Insert'
THEN
IF l_organization_id != l_master_org_id
THEN
BEGIN
SELECT COUNT (1)
INTO l_org_item_count
FROM apps.mtl_system_items_b msi
WHERE msi.organization_id = l_master_org_id
AND msi.segment1 = UPPER (recitem_data.segment1);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_org_item_count := 0;
DBMS_OUTPUT.put_line ('l_org_item_count ' ||l_org_item_count||'-'||l_processed_flag );
WHEN OTHERS
THEN
l_org_item_count := -1;
END ;
IF l_org_item_count = -1
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Exception - Checking Item in Master '
|| l_error_delimiter;
ELSIF l_org_item_count = 0
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Item Does Not Exist in Master '
|| l_error_delimiter;
END IF;
END IF;
END IF;
DBMS_OUTPUT.put_line ( 'CheckPoint: Iteminmasterorg'
|| l_org_item_count
IF (recitem_data.description IS NULL AND p_load_code = 'Insert')
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message || 'Description is NULL' || l_error_delimiter;
END IF;
IF (recitem_data.sales_account IS NOT NULL)
THEN
BEGIN
SELECT code_combination_id
INTO l_sales_account
FROM gl_code_combinations_kfv
WHERE code_combination_id= recitem_data.sales_account;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
-- l_processed_flag := 'F'; --QUESTION
l_error_message :=
l_error_message
|| 'Sales Account Not Setup '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ( 'CheckPoint: Salesacct_Validation'
|| l_sales_account||'-'||l_processed_flag
WHEN OTHERS
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Sales Account Exception '
|| SQLERRM
|| l_error_delimiter;
DBMS_OUTPUT.put_line ( 'CheckPoint: Salesacct_Validation'
|| l_sales_account||'-'||l_processed_flag
END ;
END IF;
IF (recitem_data.cost_of_sales_account IS NOT NULL)
THEN
BEGIN
SELECT code_combination_id
INTO l_cost_of_sales_account
FROM gl_code_combinations_kfv
WHERE code_combination_id =
recitem_data.cost_of_sales_account;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'COGS Account Not Setup '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ( 'l_cost_of_sales_account'
|| l_cost_of_sales_account||'-'||l_processed_flag
WHEN OTHERS
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'COGS Account Exception '
|| SQLERRM
|| l_error_delimiter;
DBMS_OUTPUT.put_line ( 'l_cost_of_sales_account'
|| l_cost_of_sales_account||'-'||l_processed_flag
END check_cogs_account;
END IF;
BEGIN
select distinct organization_code
into l_ref_org_code
from org_organization_definitions
where organization_id = recitem_data.ref_organization_id ;
EXCEPTION
WHEN OTHERS THEN
l_ref_org_code:= NULL;
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Reference Org Not Present'
|| p_org_id
|| ' Organization '
|| l_error_delimiter ;
DBMS_OUTPUT.put_line ('l_ref_org_code'|| l_ref_org_code||'-'||l_processed_flag);
END;
BEGIN
select concatenated_segments
into l_ref_inventory_item_code
from mtl_system_items_kfv
where inventory_item_id = recitem_data.ref_inventory_item_id
and organization_id = recitem_data.ref_organization_id ;
EXCEPTION
WHEN OTHERS THEN
l_ref_inventory_item_code :=NULL;
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Reference Item Not Present'
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
DBMS_OUTPUT.put_line ('l_ref_inventory_item_code'|| l_ref_inventory_item_code||'-'||l_processed_flag);
END;
IF (l_master_org = 'N' AND p_load_code = 'Insert')
THEN
BEGIN
SELECT count(*)
INTO l_description_count
FROM mtl_system_items_tl
WHERE organization_id = l_master_org_id
AND inventory_item_id =
(SELECT inventory_item_id
FROM mtl_system_items_b
WHERE organization_id = l_master_org_id
AND segment1 = recitem_data.segment1);
END ;
IF l_description_count > 0 THEN
l_processed_flag:='F';
l_error_message :=
l_error_message
|| 'Item Description Not Present'
|| p_org_id
|| ' Organization '
|| l_error_delimiter;
END IF;
END IF;
IF l_processed_flag = 'S'
THEN
BEGIN
INSERT INTO mtl_system_items_interface
(organization_id,
segment1,
description,
ITEM_TYPE,
COST_OF_SALES_ACCOUNT,
SALES_ACCOUNT,
attribute_category,
set_process_id,
transaction_type,
process_flag,
copy_organization_code,
copy_item_number,
creation_date,
created_by,
last_updated_by,
last_update_date
--attribute_category
, attribute1
, attribute2
,attribute3
,attribute4
,attribute5
,attribute6
,attribute7
,attribute8
,attribute9
,attribute10
,attribute11
,attribute12
,attribute13
,attribute14
,attribute15
,global_attribute10
VALUES (l_organization_id,
recitem_data.segment1,
recitem_data.description,
recitem_data.ITEM_TYPE,
recitem_data.COST_OF_SALES_ACCOUNT,
recitem_data.SALES_ACCOUNT,
recitem_data.ATTRIBUTE_CATEGORY,
l_set_process_id,
l_transaction_type, --,l_transaction_type
l_process_flag,
l_ref_org_code,
l_ref_inventory_item_code,
SYSDATE, l_user_id,
l_user_id, SYSDATE
-- l_attribute_category
,recitem_data.attribute1
,recitem_data.attribute2
,recitem_data.attribute3
,recitem_data.attribute4
,recitem_data.attribute5
,recitem_data.attribute6
,recitem_data.attribute7
, recitem_data.attribute8
,recitem_data.attribute9
, recitem_data.attribute10
,recitem_data.attribute11
,recitem_data.attribute12
,recitem_data.attribute13
,recitem_data.attribute14
,recitem_data.attribute15
, substr(recitem_data.global_attribute10,1,length(recitem_data.global_attribute10)-1) --recitem_data.global_attribute10
l_insert_count := l_insert_count + 1;
/* IF (l_insert_count = NVL (p_commit_point, 10000))
THEN
-- l_set_process_id := l_set_process_id + 10; -- REVERT BACK CHANGE
l_insert_count := 0;
END IF;
EXCEPTION
WHEN OTHERS
THEN
l_processed_flag := 'F';
l_error_message :=
l_error_message
|| 'Error in Inserting Item '
|| SQLERRM
|| l_error_delimiter;
END ;
COMMIT;
DBMS_OUTPUT.put_line ('CheckPoint: Insertion Completed in Intfacetable');
END IF;
BEGIN
UPDATE xxx_inv_system_items_stg
SET status_flag = l_processed_flag,
error_message = l_error_message
WHERE segment1 = recitem_data.segment1
AND organization_id = recitem_data.organization_id
AND status_flag IS NULL;
COMMIT;
DBMS_OUTPUT.put_line ('Error Message'||l_error_message);
EXCEPTION
WHEN OTHERS
THEN
fnd_file.put_line (fnd_file.LOG,
'Error:Updating Item:'
|| SQLCODE
|| '-'
|| SQLERRM
END;
END LOOP; --FOR recitem_data IN cur_item_master
DBMS_OUTPUT.put_line ( 'Validation Ends At :'
|| TO_CHAR (SYSDATE, 'DD-MON-YYYY HH24:MI:SS')
DBMS_OUTPUT.put_line ('Number of records inserted into Table Successfully -->'|| l_insert_count);
END;
END xxxx_inv_items_conv_pkg;
Edited by: 896170 on Apr 12, 2013 11:58 PMIssue got solved... changed the PO line amount as:
<?xdoxslt:set_variable($_XDOCTX,'line_amt',xdoxslt:to_number(LINE_AMOUNT))?>
Reference :Syntax for 'to_number'
Regards
Manikanta Panigrahi -
Greetings Everyone,
I am getting the follow up errors: "This field contains duplicate values. Remove all duplicate values and try the operation again."
when I tried to make the field "Claim Number" from the list in site collection library. See the screen below:
1- I selected on the "List" and I clicked on the list name
"Claim Tracking Report"
2- After I clicked on the list name then I went to the ribbon and selected list setting to choose Enforce Unique for the Field Column
"Claim Number"
3- Then I went down and selected
"Yes" to Enforced the Unique for the Field Column "Claim Number".
4- Then after I clicked "Yes" I got the error
"Sorry, something went wrong. This field contains duplicate values. Remove all duplicate values and try the operation again." But I don't have any duplicates values Items, because I had them removed before I tried
to Enforce the field column values to Unique. Can someone help or provide me a suggestions on how I can solve this issue please. Thank you
FYI: I am using a Nintex WorkflowHope this is a list, how many total items are there?
Please try to open this list as access(link in IE) and run this query in access
SELECT Claim.[Claim Number], Count(*) AS Expr1
FROM Claim
GROUP BY Claim.[Claim Number]
HAVING (((Count(*))>1));
Hope it will show something! if this does not show you dups then better to create a separate list and migrate items after configuring unique column.
Please 'propose as answer' if it helped you, also 'vote helpful' if you like this reply. -
1.2.0 reads TNSNAMES.ORA file multiple times and duplicates values in Alias
Since upgrading to 1.2.0.29.98 (clean install on Win XP SP 2), I have noticed that SQL Developer appears to be reading the TNSNAMES.ORA file multiple times. This results in the Network Alias pop-list on the TNS connection type to have duplicate values, although the number of duplicates for each entry varies widely - from four for the least that I saw and 252 for the most (assuming I counted that right :) ). We have approximately 270 entries in our TNSNAMES.ORA and the first entry in the file appears in the Network Alias list four times and the last entry in the file appears in the list 48 times.
To be honest, I switched to Basic JDBC connections with 1.1 and only noticed the problem because of some network performance issues - I thought that SQL Developer had hung and I switched on the debugging and could see that it was looping through the TNSNAMES.ORA file. Now that the network performance issues have been resolved, it still takes a little while to open the new connection window, but it is liveable, so I don't know whether the problem is 1.2 specific or not.Sue,
I assume from a bit of testing, that "each tns file on the system" means each file in the TNS_ADMIN location that starts with TNSNAMES.ORA.
I set my TNS_ADMIN to a local location and copied the current TNSNAMES.ORA from the network location (and chopped it down to a handful of entries). When I restarted SQL Developer I only had a single copy of each alias. If I copied TNSNAMES.ORA to "Copy of TNSNAMES.ORA" I still only had a single copy of each alias. If I copied TNSNAMES.ORA to TNSNAMES.ORA.TXT I then had two copies of each alias.
Unfortunately, I don't have any say in the maintenance of the network TNS_ADMIN location and it has almost 200 backup copies of the tns file, typically named TNSNAMES.ORA.YYYYMMDD.
My TNS_ADMIN setting is done as a Windows environment variable. I do not have any TNS_ADMIN setting in my registry. -
CHECK for duplicate inside a cursor and pass a ouptut parameter in sql server 2008
Hi All,
I am inserting a value into a table, Before inserting i am checking that record already exists or not in the target table, If its existsing i am making an entry into errorlog table and set the output parameter to 'errorlog' . This is inside the cursor, as
il be passing multiple values. Next is I have separate query to get the new record which is not in the target table. Using EXCEPT i get the new record and i insert into a main table. after insertion i set output as 'success'.
Here while executing the procedure i pass a duplicate value and a new value. As it is in cursor,first it will insert into errorlog and set output parameter as 'errorlog' .Next it will insert a new record into main table and set output parameter as 'Success'.
So on completion of the execution of the procedure i get output as success.
But i should get as errorlog. I should get success only on no errors in the procedure. How i can i achieve this? Please help me.
Below is my code
IF NOT EXISTS(SELECT Beginmilepost,BeginTrackName,Endmilepost,EndTrackName
FROM SSDB_Segment WHERE BeginMilepost>=@BegMP AND EndMilepost<=@EndMP AND SearchID = @SearchID AND Reference = 'Range')
BEGIN
Declare C_Max1 Cursor FOR
(SELECT Beginmilepost,BeginTrackName,Endmilepost,EndTrackName FROM SSDB_Segment WHERE BeginMilepost = @BegMP AND EndMilepost = @EndMP AND BeginTrackName = @BegtrkName
AND EndTrackName = @EndTrkName AND SearchID = @SearchID)
Open C_Max1
FETCH FROM C_MAX1 INTO @BeginMilepost,@BTrackName,@EndMilepost,@ETrackName
WHILE(@@FETCH_STATUS=0)
BEGIN
IF OBJECT_ID ('tempdb..#temp') IS NOT NULL
BEGIN
DROP TABLE #temp
END--IF
Select BeginLatitude,BeginLongitude,BeginTrackName,BeginMilepost,BeginMilepostPrefix,BeginMilepostSuffix,EndLatitude,EndLongitude,EndTrackName,EndMilepost,TrainType into #temp
FROM
SELECT BeginLatitude= case when @BegLat = 0 THEN NULL ELSE @BegLat end ,BeginLongitude= case when @BegLong=0 THEN NULL ELSE @BEgLong end ,@BTrackName AS BeginTrackName,ROUND(@BeginMilepost ,3) AS BeginMilepost,
BeginMilepostPrefix= CASE WHEN @BegPrefix = 'null' THEN NULL ELSE @BegPrefix END,BeginMilepostSuffix= CASE WHEN @BegSuffix = 'null' THEN NULL ELSE @BegSuffix END,
EndLatitude=case when @EndLat =0 then NULL else @EndLat end,EndLongitude=case when @Endlong = 0 THEN NULL ELSE @Endlong END,@ETrackName AS EndTrackName,ROUND(@EndMilepost ,3) AS EndMilepost,@TrainType AS TrainType
UNION ALL
select BeginLatitude,BeginLongitude,BeginTrackName,ROUND(BeginMilepost,3) AS BeginMilepost,BeginMilepostPrefix,BeginMilepostSuffix, EndLatitude,EndLongitude,EndTrackName,ROUND(EndMilepost,3) AS EndMilepost,TrainType from SSDB_MaximumPermissibleSpeed)data
group by BeginLatitude,BeginLongitude,BeginTrackName,BeginMilepost,EndLatitude,EndLongitude,EndTrackName,EndMilepost,BeginMilepostPrefix,BeginMilepostSuffix,TrainType
having COUNT(*)>1
SET @COUNT= (select count(*) from #temp )
Print @COUNT
IF @COUNT>=1
BEGIN
INSERT INTO ErrorLog_Asset (
ErrorCode,
ErrorMessage,
TableName,
MilepostPrefix,
Milepost
SELECT
'1',
'Already exists at BeginMp '+ CAST(@BeginMilepost as varchar) +',EndMp '+ CAST(@EndMilepost as varchar) +' ,Beginlat
'+CAST(@BegLat as varchar)
+' ,Endlat '+CAST(@EndLat as varchar)+', BeginTrackName '+@BTrackName +' and EndTrackName '+@ETrackName
'MaximumPermissibleSpeed',
CASE WHEN @BegPrefix = 'null' THEN NULL
ELSE @BegPrefix END ,
@BeginMilepost
SET @output = 'Errorlog'
END
IF OBJECT_ID ('tempdb..#Max') IS NOT NULL
BEGIN
DROP TABLE #Max
END--IF
Select BeginLatitude,BeginLongitude,BeginTrackName,BeginMilepost,BeginMilepostPrefix,BeginMilepostSuffix,EndLatitude,EndLongitude,EndTrackName,EndMilepost,TrainType into #Max from
(SELECT BeginLatitude= case when @BegLat = 0 THEN NULL ELSE @BegLat end ,BeginLongitude= case when @BegLong=0 THEN NULL ELSE @BEgLong end ,@BTrackName AS BeginTrackName,ROUND(@BeginMilepost ,3)
AS BeginMilepost,
BeginMilepostPrefix= CASE WHEN @BegPrefix = 'null' THEN NULL ELSE @BegPrefix END,BeginMilepostSuffix= CASE WHEN @BegSuffix = 'null' THEN NULL ELSE @BegSuffix END,
EndLatitude=case when @EndLat =0 then NULL else @EndLat end,EndLongitude=case when @Endlong = 0 THEN NULL ELSE @Endlong END,@ETrackName AS EndTrackName,ROUND(@EndMilepost ,3) AS EndMilepost,@TrainType AS TrainType
except
select BeginLatitude,BeginLongitude,BeginTrackName,ROUND(BeginMilepost,3) AS BeginMilepost,BeginMilepostPrefix,BeginMilepostSuffix, EndLatitude,EndLongitude,EndTrackName,ROUND(EndMilepost,3) AS EndMilepost,TrainType
from SSDB_MaximumPermissibleSpeed)data
Declare C_Max2 Cursor FOR
Select BeginMilepost,BeginTrackName,EndMilepost,EndTrackName from #Max
Open C_Max2
FETCH FROM C_Max2 INTO @BeginMP,@BeginTrackName,@EnMP,@EnTrackName
WHILE(@@FETCH_STATUS=0)
BEGIN
IF (Select COUNT(*) from tbl_Trackname )>=1
BEGIN
IF (@TrainType IN (SELECT TrainType FROM SSDB_TrainType )AND (@Speed <>0) AND @BeginMP IS NOT NULL AND @BeginTrackName IS NOT NULL AND @EnMP IS NOT NULL
AND @Direction IN (SELECT Direction FROM SSDB_Direction) AND @EnTrackName IS NOT NULL )
BEGIN-------------
SET @ID = (Select MAX(MaximumpermissibleSpeedID) from SSDB_MaximumPermissibleSpeed)
IF @COUNT =0
BEGIN
INSERT INTO SSDB_MaximumPermissibleSpeed
BeginMilepostPrefix,
BeginMilepostSuffix,
BeginMilepost,
BeginTrackName,
BeginLatitude,
BeginLongitude,
BeginElevation,
EndMilepostPrefix,
EndMilepostSuffix,
EndMilepost,
EndTrackName,
EndLatitude,
EndLongitude,
EndElevation,
Direction,
Speed,
TrainType,
Description,
InsertUser,
S_ID
SELECT
CASE WHEN @BegPrefix = 'null' THEN NULL
ELSE @BegPrefix END,
CASE WHEN @BegSuffix = 'null' THEN NULL
ELSE @BegSuffix END,
@BeginMP ,
@BeginTrackName ,
case WHEN @BegLat = 0 THEN NULL
ELSE @BegLat END,
CASE WHEN @BegLong=0 THEN NULL
ELSE @BegLong END ,
CASE WHEN @BegEle = 0 THEN NULL
ELSE @BegEle END ,
CASE WHEN @EndPrefix = 'null' THEN NULL
ELSE @EndPrefix END,
CASE WHEN @EndSuffix = 'null' THEN NULL
ELSE @EndSuffix END,
@EnMP ,
@EnTrackName ,
case WHEN @EndLat = 0 THEN NULL
ELSE @EndLat END,
CASE WHEN @EndLong=0 THEN NULL
ELSE @EndLong END ,
CASE WHEN @EndEle = 0 THEN NULL
ELSE @EndEle END ,
@Direction ,
@Speed ,
@TrainType ,
CASE WHEN @Description ='null' THEN NULL
ELSE @Description END ,
@InsertUser ,
@UID
INSERT INTO SSDB_MaxSpeed_History
MSID,
BeginMilepostPrefix,
BeginMilepostSuffix,
BeginMilepost,
BeginTrackName,
BeginLatitude,
BeginLongitude,
BeginElevation,
EndMilepostPrefix,
EndMilepostSuffix,
EndMilepost,
EndTrackName,
EndLatitude,
EndLongitude,
EndElevation,
Direction,
Speed,
TrainType,
Description,
S_ID,
NOTES ,
[Action] ,
InsertUser
SELECT
(Select MaximumPermissibleSpeedID from SSDB_MaximumpermissibleSpeed WHERE MaximumPermissibleSpeedID > @ID),
CASE WHEN @BegPrefix = 'null' THEN NULL
ELSE @BegPrefix END,
CASE WHEN @BegSuffix = 'null' THEN NULL
ELSE @BegSuffix END,
@BeginMP ,
@BeginTrackName ,
case WHEN @BegLat = 0 THEN NULL
ELSE @BegLat END,
CASE WHEN @BegLong=0 THEN NULL
ELSE @BegLong END ,
CASE WHEN @BegEle = 0 THEN NULL
ELSE @BegEle END ,
CASE WHEN @EndPrefix = 'null' THEN NULL
ELSE @EndPrefix END,
CASE WHEN @EndSuffix = 'null' THEN NULL
ELSE @EndSuffix END,
@EnMP ,
@EnTrackName ,
case WHEN @EndLat = 0 THEN NULL
ELSE @EndLat END,
CASE WHEN @EndLong=0 THEN NULL
ELSE @EndLong END ,
CASE WHEN @EndEle = 0 THEN NULL
ELSE @EndEle END ,
@Direction ,
@Speed ,
@TrainType ,
CASE WHEN @Description ='null' THEN NULL
ELSE @Description END ,
@UID,
NULL,
'INSERT',
@InsertUser
set @output='Success'
--IF ((@COUNT >=1) AND (@COUNT =0))
--BEGIN
-- SET @output = 'ErrorLog'
--END
--IF (@COUNT = 0)
-- BEGIN
--SET @output ='Success'
--END
--END
END
END------------------------>
DeepaHi Deepa,
If I understand your question correctly, you would like the @Output parameter to contain the value "Success" only if all rows were successful. As soon as one row was found to be a duplicate, the value of @Output at the end of execution should be "ErrorLog".
Currently, you modify the value of @Output in each iteration of the cursor, so at the end of execution you're left with the last value.
In order to change that to work the way you want it, you need to set the value of @Output in the beginning of execution (before entering the cursor) to "Success", and as soon as there is a duplicate row, you should modify the value to "ErrorLog". This way,
if all rows are successful, the value of @Output will be "Success" at the end of execution. On the other hand, if there is even a single duplicate row, the value of @Output will be "ErrorLog" at the end of execution.
I hope this helps...
Guy Glantser
SQL Server Consultant & Instructor
Madeira - SQL Server Services
http://www.madeirasql.com -
Issues regarding theMarker value in inventory BI 7.0
Hi,
We are facing an issue with the marker update for Stock vertical.
As per the process defined by SAP we have loaded the stock report using the marker value of 2LIS_03_BX.
1. We ran setup table in R/3 system for initial value of stock on 26th April 2009
2. Marker value was loaded in the inventory cube from 2LIS_03_BX and compressed with Marker Update.
3. Historical movements were loaded from 2LIS_03_BF to cube.
4. The historical records were compressed with u201CNo Marker Updateu201D.
5. The delta loads were started for the inventory cube.
We came across some materials that were giving incorrect stock values.
Due to marker value was not coming correct from the extractor 2lIS_03_BX.
The reason for this was that there were some material documents that were created on 27th of April 2009 were having there posting dates in 16th April 2009.
As the initialization was done on 26th April, the above mentioned documents did not affect the marker valued and hence they resulted in incorrect calculation of stock.
We would like to get input on how we can rectify the marker value.
Kindly help us if someone has faced the same scenario in SAP BI 7.0 related to Stock/Inventory Cube.If you cannot ask business users to reverse the document, I guess you have to reverse them by yourself. The key point here is that your document was not counted in your initial balance. So you have to remove them without touching the marker and reload them with marker update.
If you cannot identify those documents, I guess you have to do everything again in a clean way.
If you can identify them, you could do it in the following way.
1. Load those documents in a repair load.
2. update your transformation rule a little bit to reverse your key figure. If it's 100, make it -100. Don't touch anything else.
3. Now load these documents into the cube without marker update.
4. Put your transformation rule back to original.
5. Load the documents again in a repair load.
6. Load them into your cube with marker update.
You need to temporary hold your delta process while doing the above. -
How to restrict the duplicate values in lov column of VO based Adv Table
Hi Gurus,
I want to restrict the duplicate values at lov which is a colunm in an Adv Table.
If user enters duplicate values then first it should show an error msg that Duplicate values have been entered.
After the duplicate values have been removed, then the user can save all the values in the table.
My Adv Table is based on a VO.
The link how to restrict the duplicate values at form level
talks about Adv Table based on a EoVO, which doesnot work in my case.
My Approach,
I am iterating through RowSetIterator and committing through PROCEDURE.
I am able to avoid duplicate entry through a function checkRespId. (given below)
Below code is for iterating and committing.
public void saveline(String reqid,String userid)
System.out.println("RequestId/saveline"+reqid);
System.out.println("UserId/saveline"+userid);
OAViewObject vo = (OAViewObject)getRespLineVO1();
RespLineVORowImpl row = null;
int fetchedRowCount = vo.getFetchedRowCount();
RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
if (fetchedRowCount > 0)
deleteIter.setRangeStart(0);
deleteIter.setRangeSize(fetchedRowCount);
for (int i = 0; i < fetchedRowCount; i++)
System.out.println("Inside the for LOOP");
row = (RespLineVORowImpl)deleteIter.getRowAtRangeIndex(i);
String respoidid = row.getAttribute("ResponsibilityId")+"";
String respname = row.getAttribute("ResponsibilityName")+"";
String stdate = row.getAttribute("StartDate")+"";
String enddate = row.getAttribute("EndDate")+"";
String linestatus ="A";
if(userid!=null)
if(!(respoidid.equals("null")) && respoidid!=null)
String checkingrespid=null;
checkingrespid = checkRespId(userid,respoidid);+contains no if not duplicate and yes if its duplicate+
System.out.println("checkingrespid for Resp with ID :"+respoidid+"exists or not "+checkingrespid);
if(checkingrespid.equals("No"))
String message, result = null;
Connection txn = getOADBTransaction().getJdbcConnection();
try
calling PROC ...
catch(Exception e)
message = "Error in Inserting into line" + e;
throw new OAException(message, OAException.ERROR);
else
throw new OAException("You have entered duplicate no. of values", OAException.ERROR);
else
System.out.println("respoidid is null");
break;
deleteIter.closeRowSetIterator();
public String checkRespId(String userid,String respoidid)
String createRow="No";
OAViewObject vo = (OAViewObject)findViewObject("CheckRespVO1");
if (vo != null)
vo.setWhereClauseParams(null);
vo.setWhereClauseParam(0, userid);
vo.setWhereClauseParam(1, respoidid);
vo.executeQuery();
System.out.println("ROW COUNT IS "+vo.getRowCount());
if(vo.getRowCount()>0)
createRow="Yes";
else
createRow="No";
return createRow;
Problem:
I remove the duplicate entries and click on save and get this error.
Unable to perform transaction on the record. \nCause: The record contains stale data. The record has been modified by another user.
\nAction: Cancel the transaction and re-query the record to get the new data.
Thanks,
SombitHi Anil,
I am trying out your code but stuck in inserting the rows
using your code in URL: http://oracleanil.blogspot.com/2010/09/oaf-passing-table-type-object-to-oracle.html
I am always getting the same exception i.e COde blast in when I run.
My modified code is:
String[] as = null;
Number[] vNumber = null;
Number[] vNumberrespid = null;
Number reqidnumber = null;
reqidnumber = new Number(Integer.parseInt(reqid));
Connection txn = getOADBTransaction().getJdbcConnection();
String mCreateSearchRequestStatement = null;
OAViewObject vo = (OAViewObject)findViewObject("RespLineVO1");
int j = vo.getFetchedRowCount();
try
System.out.println("abouce try");
vo.reset();
if (vo.getFetchedRowCount() > 0)
System.out.println(String.valueOf("Fetched row count ").concat(String.valueOf(vo.getFetchedRowCount())));
int i = 0;
as = new String[j];
vNumber = new Number[j];
vNumberrespid = new Number[j];
while (vo.hasNext())
vo.next();
System.out.println(String.valueOf("Inisde the do while loop").concat(String.valueOf(i)));
vNumber[i] = (reqidnumber);
vNumberrespid = ((Number)vo.getCurrentRow().getAttribute("ResponsibilityId"));
as[i] = String.valueOf(vo.getCurrentRow().getAttribute("ResponsibilityName")).concat(String.valueOf(""));
System.out.println("Request ID "+reqidnumber[i]);//getting null even there is some value selected
System.out.println("ResponsibilityId "+vNumberrespid[i]);//getting null even there is some value selected
System.out.println("Resp Name "+as[i] );//getting null even there is some value selected
i++;
CallableStatement cs = txn.prepareCall("{call XX_PassTableType.XX_PassTableType_prc(:1, :2,:3)}");
ARRAY array = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumber);
ARRAY arraynew = new ARRAY(new ArrayDescriptor("APPS.JTF_NUMBER_TABLE", txn), txn, vNumberrespid);
ARRAY array1 = new ARRAY(new ArrayDescriptor("APPS.JTF_VARCHAR2_TABLE_100", txn), txn, as);
cs.setArray(1, array);
cs.setArray(2, arraynew);
cs.setArray(3, array1);
cs.registerOutParameter(3, 2003, "JTF_VARCHAR2_TABLE_100");
cs.execute();
ARRAY error = null;
error = (ARRAY)cs.getArray(2);
if ((error != null) && (error.length() > 0))
System.out.println(String.valueOf("Error is ").concat(String.valueOf(error.getArray())));
String[] retError = new String[j];
retError = (String[])error.getArray();
System.out.println(String.valueOf("Error in saving data").concat(String.valueOf(retError[0])));
cs.close();
catch (Exception exception)
throw new OAException("code blast", OAException.ERROR);
Thanks,
Sombit -
Validation for duplicate AP invoice
We would like to prevent duplicate AP invoices from being posted through FB60. We created an FI validation in OB28 in which the prerequisite = Tcode FB60, and the check is a user exit to check the values in vendor / company code / reference fields and if those 3 fields have the same values as in an existing document, to generate an error message preventing the duplicate document from being posted.
The above works well for creating new invoices. However, when we have to make changes to an existing invoice (created through FB60), the system also calls on that validation and generates the error message, even though the only fields we can change on the invoice is payment terms, payment method, payment method supplement and text.
Other than modifying the user exit, does anybody know of a better way to do this validation or to prevent duplicate manual invoice from being created?
thank you.This has already been answered before so extracted part of the reply
there are two duplicate checks in SAP:
1. the one for FI documents, this is relevant for all F... postings (but nor for MIRO!)
this can be turned off or on (in vendor master record) and 6 fields are checked:
Check Flag for Double Invoices or Credit Memos
Indicator which means that incoming invoices and credit memos are checked for double entries at the time of entry.
Use
Checking Logistics documents
Firstly, the system checks whether the invoice documents have already been entered in the Logistics invoice verification; the system checks invoices that are incorrect, or invoices that were entered for invoice verification in the background.
Checking FI documents
The system then checks whether there are FI or Accounting documents that were created with the original invoice verification or the Logistics verification, and where the relevant criteria are the same.
Checking Logistics documents
In checking for duplicate invoices, the system compares the following characteristics by default:
Vendor
Currency
Company code
Gross amount of the invoice
Reference document number
Invoice document date
If all of these characteristics are the same, the system issues a message that you can customize.
When you enter credit memos or subsequent adjustments, the system does not check for duplicate invoices.
Exception: Country-specific solution for Argentina, where invoices and credit memos are checked for duplicate documents.
No message is issued if you enter a document that has previously been reversed.
Dependencies
The system only checks for duplicate invoices in Materials Management if you enter the reference document number upon entering the invoice.
In Customizing for the Logistics invoice verification, you can specify that the following characteristics should not be checked:
Reference document number
Invoice document date
Company code
This means that you can increase the likelihood that the system will find a duplicate invoice, because you can reduce the number of characteristics checked.
Example
The following document has already been entered and posted:
Reference document number: 333
Invoice date: 04/28/00
Gross invoice amount: 100.00
Currency: EUR
Vendor: Spencer
Company code: Munich
You have made the following settings in Customizing:
The field "Reference document number" and "Company code" are deselected, which means that these characteristics will not be checked.
Now you enter the following document:
Reference document number: 334
Invoice date: 04/28/00
Gross invoice amount: 100.00
Currency: EUR
Vendor: Spencer
Company code: Berlin
Result
Because you entered a reference document when you entered the invoice, the system checks for duplicate invoices.
The reference document number and the company code are different from the invoice entered earlier, but these characteristics are not checked due to the settings you have made in Customizing.
All other characteristics are the same. As a result, the system issues a message that a duplicate entry has been made.
If the "Reference document number" had been selected in Customizing, the system would have checked the document and discovered that it was different from the invoice entered earlier, so it would not have issued a message.
Checking FI documents
Depending on the entry in the field "Reference", one of the following checks is carried out:
1. If a reference number was specified in the sequential invoice/credit memo, the system checks whether an invoice/credit memo has been posted where all the following attributes agree:
Company code
Vendor
Currency
Document date
Reference number
2. If no reference number was specified in the sequential invoice/credit memo, the system checks whether an invoice/credit memo has been posted where all the following attributes agree:
Company code
Vendor
Currency
Document date
Amount in document currency
2. the one for LIV.
this can be customized (as stated above) and is relevant for MIRO (and not for F... postings!).
Company, Reference and Invoice date
Set Check for Duplicate Invoices
In this step, you can configure for each company code if the system is to check for duplicate invoices when you enter invoices.
This check should prevent incoming invoices being accidentally entered and paid more than once.
You can choose whether to activate or deactivate the check criteria of company code, reference document number and invoice date for each company code. The more criteria that you activate, the lower the probability of the system finding a duplicate invoice. The Accounting documents are checked first, followed by documents from Logistics Invoice Verification (only incorrect invoices or those entered for verification in the background).
When checking duplicate invoices, the system compares the following
attributes in the standard system:
Vendor
Currency Company code
Gross invoice amount Reference document number
1. Invoice date If the system finds an invoice that matches all attributes, the system
displays a customizable message.
If you are entering credit memos, subsequent debits, or subsequent
credits, the system does not check for duplicate invoices.
The exception is the Argentina country version, where the system checks
for duplicate invoices and credit memos.
If a previously processed document is later cancelled and then entered
again, no message is displayed.
Requirements
The system only checks for duplicate invoices in Materials Management
if you specify a reference document number when entering the invoice.
In Customizing (IMG) for Invoice Verification, you can specify that the
system check the following attributes -
Mapping Issue for IDoc to JDBC interface
Hi All,
I am having problem in implementing logic in IDoc to JDBC interface where I have to filter out E1WBB07-KSCHL = VKP0.
Source IDoc structure is like ->
E1WBB01(occ 0 -1000)
|-> E1WBB03 (occ 0-100)
|-> E1WBB07(occ 0-1000)
|-> KSCHL
DATAB
DATBI
Now, For each KSCHL = VKA0 there should be a duplicate VKP0 record. From these 2 records only the VKA0 should get processed and VKP0 ignored.
Duplicates for VKP0 and VKA0 can be identified by identical DATAB and DATBI.
Suppose, in one E1WBB03 segment,there are 4 E1WBB07 segment having following values.
1: KSCHL=VKP0, DATAB=20102011, DATBI=25102011
2: KSCHL=VKP0, DATAB=26102011, DATBI=30102011
3: KSCHL=VKA0, DATAB=26102011, DATBI=30102011
4: KSCHL=VKP0, DATAB=01112011, DATBI=31129999
2 & 3 are duplicates. From these, 2 should get dropped.
As a result only 1, 3 and 4 should get processed.
How can I proceed with this..?...I have tried some work around but not able to do it successfully. Is a UDF required to compare DATAB and DATBI. If yes how it can be written.?
Thnx in advance,
Praveen.chk below mapping:
change the context of DATAB, DATAB1 and KSCHL to E1WBB03 (right click-> context) in all the mappings shown below
1)
DATAB
------------concat-----sort----splibyvalue(value change)-----collapse context---TargetNode
DATBI
2)
DATAB
------------concat-----sortbykey \
DATBI / \
KSCHL------------/ \
----------------------------------------FormatByExample----sort-----UDF1----Target KSCHL
DATAB /
----concat---sort--splibyvalue(value change)-
DATBI
3)
DATAB
---concat ( ; )-----sort-splibyvalue(value change)---collapse context--splitbyvalue (each value)--UDF2---TargetDATAB
DATBI
4)
DATAB
------------concat ( ; )-----sort----splibyvalue(value change)-----collapse context--splitbyvalue (each value)--UDF3---TargetDATABI
DATBI
UDF1: execution type : all values of a context...input: var1
int a=var1.length;
int count=0;
if(a>=2)
for(int i=0;i<a;i++)
if(var1<i>.equals("VKA0"))
count= count+1;
else
result.addValue(var1[0]);
if(count>1)
for(int i=0;i<count;i++)
result.addValue("VKA0");
UDF2:execution type: single value...input: var1
String [] temp= var1.split(";");
return temp[0];
UDF3: execution type: single value...input: var1
String [] temp= var1.split(";");
return temp[1]; -
Hitting error LDAP: error code 20 - mail attribute has duplicate value.
Hi ,
Anyone faced this issue before LDAP: error code 20 - mail attribute has duplicate value. We are getting this error intermittently in oid logs and
and due to that provisioning stuck . I know that the issue due to the object class mismatch in attributes. But map profile looks fine . Anything else need to check ?
SSO verion 10.4.1.3 and DB version 10g .
javax.naming.directory.AttributeInUseException: [LDAP: error code 20 - mail attribute has duplicate value.]; remaining name 'uid=abc,cn=users,dc=xyz ,dc=com'
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:2972)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2934)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2740)
at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1440)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:255)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:172)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:161)
at javax.naming.directory.InitialDirContext.modifyAttributes(InitialDirContext.java:146)
at oracle.ldap.odip.gsi.LDAPWriter.modify(LDAPWriter.java:479)
at oracle.ldap.odip.gsi.LDAPWriter.writeChanges(LDAPWriter.java:318)
at oracle.ldap.odip.engine.AgentThread.mapExecute(AgentThread.java:656)
at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:377)
at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:238)
DIP_LDAPWRITER_ERROR_MODIFY
Error in executing mapping DIP_LDAPWRITER_ERROR_MODIFY
DIP_LDAPWRITER_ERROR_MODIFY
at oracle.ldap.odip.engine.AgentThread.mapExecute(AgentThread.java:830)
at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:377)
at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:238)
DIP_LDAPWRITER_ERROR_MODIFY
Setting Change Success Count : 27682
Setting Change Failure Count : 11004
CDSImportProfile:Error in Mapping EngineDIP_LDAPWRITER_ERROR_MODIFY
DIP_LDAPWRITER_ERROR_MODIFY
at oracle.ldap.odip.engine.AgentThread.mapExecute(AgentThread.java:851)
at oracle.ldap.odip.engine.AgentThread.execMapping(AgentThread.java:377)
at oracle.ldap.odip.engine.AgentThread.run(AgentThread.java:238)
CDSImportProfile:about to Update exec statusdid you search the LDAP server to see whether the email value you try to use already exist ? typically LDAP server do not care whether email is duplicated or not, but by default OIM server do not allow duplicated email
Maybe you are looking for
-
When attempting to update to iOS 6.1.3 i get the messge: "there are purchased items on the iPhone "" that have not been transferred to your iTunes library. You should tnasfer these items to your iTunes library before updating this iPhone. Are you
-
WebService problem: only the first element of a string array is returned
Hello, i did the J2EE QuickCarRental tutorial and extended it by some features: I created another entity bean and implemented four new methods in the QuickOrderProcessor. Then i deployed it as a WebService and accessed it using the Visual Composer. E
-
Re:Adding a row in a matrix using Lost_Focus event & deleting a row
Dear All, Iam facing a problem in adding a row in a matrix using last focus event.its like if i keep the cusor in the last coloumn in a matrix n if i press tab it should add a row .the row is getting added the problem here is the cursor is gng to fir
-
Adjustment Panel Fly-out menu options. The Adjustment Panel was added to Photoshop in CS4 and two of its Fly-out Menu options seem to be more a problem then useful. These options are: "Add Mask by Default" Adobe checked this option by default "Clip t
-
ARD admin 2.2 and Leopard
I did the upgrade to 10.5 on my MacBook and now ARD admin 2.2 is not able to open. When it tries to open, it does an attempted update and tells me more current software is already installed and then only lets me exit out... Anyone know a work around