Running a package created in SQL2005 on SQL2012
Hi,
A developer has moved a sqlagent job from 2005 to 2012. The job runs a SSIS package that is stored on a fileshare on another server.
Are you able to run 2005 Integration services packages on 2012 from the file system? Running it on the 2005 instance works fine but running it on 2012 gives the following error (I'm guessing the corrupt error message is because it's a sql 2005 package?
Any help would really be appreciated.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Tools.Applications.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. File
name: 'Microsoft.VisualStudio.Tools.Applications.Core, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at Microsoft.SqlServer.IntegrationServices.VSTA.VstaHelper.<CleanUp>b__1a() at Microsoft.SqlServer.VSTAHosting.VSTAScriptingEngine.DisposeVstaHelper()
at Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.MigrateVSAScriptTask(XmlElement elemProj, IDTSInfoEvents events) at Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(XmlElement elemProj, IDTSInfoEvents events) WRN: Assembly binding logging
is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove
the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. End Error Error: 2014-03-24 15:45:27.14 Code: 0x00000003 Source: Check For File Description: The Script Task is corrupted. End Error Error: 2014-03-24 15:45:27.14 Code: 0xC0024107 Source: Check
For File Description: There were errors during task validation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 15:45:26 Finished: 15:45:27 Elapsed: 0.608 seconds. The package execution failed. The step failed.
This would help you
https://connect.microsoft.com/SQLServer/feedback/details/776248/could-not-load-file-or-assembly-microsoft-visualstudio-tools-applications-core
or the package might have a script task which would need to be worked on
http://www.sqlservercentral.com/blogs/jamesserra/2012/12/13/solution-to-vsta-editor-error-in-ssis-2012/
Abhinav http://bishtabhinav.wordpress.com
Similar Messages
-
"VS_NEEDSNEWMETADATA" error while running a package created from C# code
I have gone through most of the answers for similar questions here however none has resolved the issue. We have created a package using C# code which stages data from a source table to destination (ChildPackage.dtsx).
Source Table : RowKey, Col1, Col2
Destination Table : RowKey, Col1, Col2, RowID, RunID (RowID is an identity column in destination table and RunID is a derived column whose value is set using a variable)
This package runs fine when we execute it directly however, we run these packages from a master package (MasterPackage.dtsx). When we are trying to run the package (ChildPackage) from a MasterPackage we get an error:
[SSIS.Pipeline] Error: "Oledb Destination" failed validation and returned validation status "VS_NEEDSNEWMETADATA".
We have tried setting DelayValidation to true for the ChildPackage and even tried setting the values for "ValidateExternalMetadata" for the source and destination component as "False" for the data flow task
of the ChildPackage.
There is no case difference between column names in source and destination and it runs fine when we run the ChildPackage directly.
The only additional task that the Master package performs is to generate and set a variable that is used as RunID value by the child package.
If we hardcode the RunID in the ChildPackage and run it directly, it runs fine.
The MasterPackage.dtsx is not created from code and has a step to run ChildPackage.dtsx. We generate the ChildPackage.dtsx from code and replace in original solution.
Any help would be appreciated.
Gaurav AgarwalWhere then this RunID is consumed?
Arthur My Blog
The RunID is set by the MasterPackage in a parameter, this parameter is used as value of derived column in the data transformation task of the ChildPackage.
As mentioned ChildPackage has a RunID column.
Gaurav Agarwal -
Unable to run dtsx package locally when there is a sort task
Hi all
I have created a very simple package.
It has a OLE DB Source, a Sort and a OLE DB Destination.
When I run it in the Integration Designer in Visual Studio, it works fine.
But when I like to execute the package in another C# Project, I get this error:
"To run a SSIS package outside of SQL Server Data Tools you must install Sort of Integration Services or higher."
When I remove the Sort Task, it works.
Here is my C# code:
MyEventListener eventListener = new MyEventListener();
Microsoft.SqlServer.Dts.Runtime.Package _Package;
Microsoft.SqlServer.Dts.Runtime.Application _Application;
Microsoft.SqlServer.Dts.Runtime.DTSExecResult _DTSExecResult;
_Application = new Microsoft.SqlServer.Dts.Runtime.Application();
_Package = _Application.LoadPackage(@"...\Package.dtsx", eventListener, true);
_DTSExecResult = _Package.Execute(null, null, eventListener, null, null);
System.Windows.Forms.MessageBox.Show(_DTSExecResult.ToString());
Thanks and best regards
FrankHi frank,
Based on the error message, it seems that SSIS is not installed or a lower SSIS version installed on the server on which the C# project was running.
To run the package outside SSDT, you need right version SSIS installed. The reason why the package runs fine with only Source and Destination components is that such a simple package can be executed by the DTExec utility installed by SQL Server 2012 Data base
Engine or Client Tools (SQL Server Import and Export Wizard). To run a package that uses other tasks/components outside SSDT/BIDS, the SSIS runtime is also required except the DTExec utility. To obtain the SSIS runtime, we have to install SSIS on the server
where the package runs.
Reference:
http://stackoverflow.com/questions/19989099/getting-error-running-ssis-package-on-non-ssis-server
Thanks,
Katherine Xiong
If you have any feedback on our support, please click
here.
Katherine Xiong
TechNet Community Support -
Hi friends,
i need to run a package which will send a mail as soon after it runned. I have a package. But i need to run that package for each and every 10 min in a day. For that how i can create a job to execute that package.
As a result of the job for each and every 10 min ill be receiving a mail. How to create a job to execute my package for every 10 min.
Regards,
MiniHi srikanth and hoek,
Thanks for your reply.
i dont know why the job is not running and executing the package.
if i compiled the package separately means, i can able to execute it successfully and also im receiving mails correspondingly.
begin
it_check_overdue_issues.email_overdue;
end;But if i tried to execute the above package using a job means, it is not running corresponding to the time and also not receiving emails. This is my DBMS_JOB query that i used, it is compiling successfully without errors, but not working what is wrong with it.
DECLARE
jobno number;
BEGIN
DBMS_JOB.SUBMIT(
job => jobno,
what => 'BEGIN it_check_overdue_issues.email_overdue; END;',
next_date => SYSDATE,
interval => 'SYSDATE + (2/1440)');
COMMIT;
END;Regards,
Mini -
How to run multiple packages in one process chain
Hi,
we want to run a script logic with badi, followed by a standard move function. The BADI will perform a check and generate an error. If no error occurs, the move can continue ...
We created our own process chain, which is in fact the combination of a script logic and a move. The data package has underlaying syntax.
Problem is that the data package does not trigger the process chain ... Nothing happens when running it. When checking the status, nothing gets in here ... We assigned the correct process chain and get message a postivie message when running the package... Is this not possible?
PROMPT(COPYMOVEINPUT,%SELECTION%,%TOSELECTION%,"Selecteer de gegevens waarvoor een omboeking dient te gebeuren","%CATEGORY_DIM%,%ENTITY_DIM%,PRODUCTIEHUIS,PRODUCTIEWIJZE,NET,KWADRANT")
INFO(%TEMPNO1%,%INCREASENO%)
INFO(%ACTNO%,%INCREASENO%)
INFO(%EQU%,=)
INFO(%TAB%,;)
TASK(ZBPC_RUN_LOGIC,TAB,%TAB%)
TASK(ZBPC_RUN_LOGIC,EQU,%EQU%)
TASK(ZBPC_RUN_LOGIC,SUSER,%USER%)
TASK(ZBPC_RUN_LOGIC,SAPPSET,%APPSET%)
TASK(ZBPC_RUN_LOGIC,SAPP,%APP%)
TASK(ZBPC_RUN_LOGIC,SELECTION,%SELECTION%)
TASK(ZBPC_RUN_LOGIC,LOGICFILENAME,STOCK.LGF)
TASK(/CPMB/CM_CONVERT,OUTPUTNO,%TEMPNO1%)
TASK(/CPMB/CM_CONVERT,ACT_FILE_NO,%ACTNO%)
TASK(/CPMB/CM_CONVERT,SAPPSET,%APPSET%)
TASK(/CPMB/CM_CONVERT,SAPP,%APP%)
TASK(/CPMB/CM_CONVERT,SELECTION,%SELECTION%)
TASK(/CPMB/CM_CONVERT,TOSELECTION,%TOSELECTION%)
TASK(/CPMB/CM_CONVERT,CLEARDATA,0)
TASK(/CPMB/CLEAR_SOURCE_CUBE,CHECKLCK,1)
TASK(/CPMB/CLEAR_SOURCE_CUBE,SELECTION,%TOSELECTION%)
TASK(/CPMB/APPEND_LOAD,INPUTNO,%TEMPNO1%)
TASK(/CPMB/APPEND_LOAD,ACT_FILE_NO,%ACTNO%)
TASK(/CPMB/APPEND_LOAD,RUNLOGIC,%RUNLOGIC%)
TASK(/CPMB/APPEND_LOAD,CHECKLCK,1)
TASK(/CPMB/APPEND_LOAD,CLEARDATA,0)
TASK(/CPMB/CLEAR_CUBE,CHECKLCK,1)
TASK(/CPMB/CLEAR_CUBE,ACT_FILE_NO,%ACTNO%)
TASK(/CPMB/CLEAR_CUBE,SELECTION,%SELECTION%)Hi Sheldon,
we never have issues when we combine standard objects, like a cliear with a load inforprovider, or the master data integration you mentioned in your document. However, from the moment we combine a script logic with a standard package (like a move) it does not work .The data package contains the task needed for the script and for the move. the process chain is called up but always comes in error in the first step (BPC modify dynamically ) ... there is also no log when checking the view status ...
I can sent you some screenshots if you like ...
D -
I need help to run this package and i got some error
create or replace
PACKAGE BODY SUBS_INS_API_sun
AS
PROCEDURE SUBSCRIBER_INS_sun
(SOURCE_SYS_ID IN VARCHAR2,
TRACKING_ID IN VARCHAR2,
ACCOUNT_NO IN VARCHAR2,
prepaidActDevDetails_tab IN prepaidactdvcdetailsobj_sun,
ERROR_CODE OUT VARCHAR2)
IS
Input_Parameter_Is_Null EXCEPTION;
pragma exception_init(Input_Parameter_Is_Null,-2000);
prepaidAccountDetails prepaidActDevDetails_tab:= prepaidActDevDetails_tab(NULL,NULL,NULL,NULL,NULL);
STATUS VARCHAR2(1):='1';
cust_no VARCHAR(10);
m_mac_id VARCHAR2(20);
subscriber_master_Rec subscriber_master%ROWTYPE :=NULL;
flg NUMBER(1);
BEGIN
IF(Source_Sys_Id IS NULL OR Tracking_Id IS NULL OR ACCOUNT_NO IS NULL OR prepaidAccountDetails.LAST=0) THEN
RAISE Input_Parameter_Is_Null;
END IF;
BEGIN
select cm_cust_no into cust_no from customer_master where cm_cust_id=ACCOUNT_NO and cm_status in('A','P','0');
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
STATUS:='0';
END;
BEGIN
FOR i IN prepaidAccountDetails.FIRST .. (prepaidAccountDetails.LAST) LOOP
prepaidAccountDetails1:=prepaidActDevDetails_tab(i);
prepaidAccountDetails1.Status_of_device:='1';
IF (prepaidAccountDetails.Account_id is NULL OR prepaidAccountDetails.Mac_Id is NULL or prepaidAccountDetails.LOB_value is NULL) THEN
RAISE Input_Parameter_Is_Null;
END IF;
IF(prepaidAccountDetails.LOB_value = 'VDO') THEN
IF(prepaidAccountDetails.Channel_Line_Up is NULL) THEN
Error_code :='SI002';
DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
STATUS:=0;
prepaidAccountDetails.Status_of_device:='0';
END IF;
END IF;
begin
select 1 into flg from subscriber_master where pm_phone_no=prepaidAccountDetails.Mac_Id and pm_status in('P','0','A','B');
EXCEPTION
WHEN NO_DATA_FOUND THEN
flg:=0;
END;
if(flg=1) then
DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
STATUS:=0;
prepaidAccountDetails.Status_of_device:='0';
END IF;
begin
select md_mac_id into m_mac_id from mac_details where md_mac_id=prepaidAccountDetails.Mac_Id and md_start_date<=sysdate
and md_status='A';
EXCEPTION when OTHERS then
Error_code :='SI004';
DBMS_OUTPUT.PUT_LINE('NO DATA FOUND');
STATUS:=0;
prepaidAccountDetails.Status_of_device:='0';
end;
if(STATUS= 1 and prepaidAccountDetails.Status_of_device='1') then
SELECT PM_SUBS_ACT_NO_SEQ.nextval
INTO subscriber_master_rec.PM_SUBS_ACT_NO
FROM dual;
subscriber_master_Rec.pm_phone_no :=prepaidAccountDetails.Mac_Id;
subscriber_master_Rec.pm_open_date :=sysdate;
subscriber_master_rec.pm_status :='P';
subscriber_master_rec.PM_CUST_LVL_YN:='S';
subscriber_master_rec.PM_EQUP_CODE:=prepaidAccountDetails.LOB_value;
subscriber_master_rec.PM_HOME_AREA:='HOM';
subscriber_master_rec.PM_USG_CODE:='USG';
subscriber_master_rec.PM_NO_TYPE:='S';
subscriber_master_rec.PM_TCG_CODE:='DEF';
subscriber_master_rec.PM_APLN_DATE:=sysdate;
subscriber_master_rec.PM_USER2:=prepaidAccountDetails.LOB_value;
subscriber_master_rec.PM_USER3:=prepaidAccountDetails.Channel_Line_Up;
subscriber_master_rec.pm_cust_no:=cust_no;
INSERT INTO subscriber_master VALUES subscriber_master_rec;
END IF;
END LOOP;
END;
END SUBSCRIBER_INS_sun;
END SUBS_INS_API_sun;
and
i got this error
Package Body PREPAID_TESTNEW.SUBS_INS_API@PREPAID_TESTNEW
Error(73,4): PL/SQL: Statement ignored
Error(73,99): PLS-00302: component 'LAST' must be declared
Error(87,6): PL/SQL: Statement ignored
Error(87,37): PLS-00302: component 'FIRST' must be declared
please help to run this package if anyone knowsnow i corrected my package. It working fine. But, how to run this package via procedure. my procedure check below. I give all the details about my package check below.
---pkg specification
create or replace
PACKAGE SUBS_INS_API_SS
IS
PROCEDURE SUBSCRIBER_INS_SS
(SOURCE_SYS_ID IN VARCHAR2,
TRACKING_ID IN VARCHAR2,
ACCOUNT_NO IN VARCHAR2,
prepaidActDevDetails_tab IN prepaidActDeviceDetails_tabobj,
ERROR_CODE OUT VARCHAR2);
END SUBS_INS_API_SS;
-----pkg body
create or replace
PACKAGE BODY SUBS_INS_API_SS
AS
PROCEDURE log_error (ip_code IN VARCHAR2,
ip_message IN VARCHAR2,
ip_description IN VARCHAR2)
IS
BEGIN
INSERT INTO ERR_LOG (IEL_REF_ID,
IEL_DATE,
IEL_CODE,
IEL_MSG,
IEL_DESC)
VALUES (IVRS_ERR_LOG_SEQ.NEXTVAL,
SYSDATE,
ip_code,
ip_message,
ip_description);
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
END log_error;
PROCEDURE INSERT_WS_LOG (SOURCE_SYS_ID IN VARCHAR2,
STATUS IN VARCHAR2,
TRACKING_ID IN VARCHAR2,
ACCOUNT_ID IN VARCHAR2,
MAC_ID IN VARCHAR2)
IS
ws_log_rec WS_LOG%ROWTYPE := NULL;
BEGIN
SELECT WS_LOG#REC#ID.NEXTVAL INTO ws_log_rec.rec#id FROM DUAL;
ws_log_rec.VER#ID := 1;
ws_log_rec.CRE#TS := SYSDATE;
ws_log_rec.wl_source := SOURCE_SYS_ID;
ws_log_rec.wl_status := Status;
ws_log_rec.wl_tracking_id := tracking_id;
ws_log_rec.wl_account_id := account_id;
ws_log_rec.wl_mac_id := mac_id;
INSERT INTO ws_log
VALUES ws_log_rec;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
END INSERT_WS_LOG;
PROCEDURE REPLICO_DEV_INFO( Acc_id IN VARCHAR2, Mc_Id IN VARCHAR2,channel IN VARCHAR2,
LOB_VAL IN VARCHAR2, outlet1 IN VARCHAR2, kit_cod IN VARCHAR2,
serial_No IN VARCHAR2, shipperr IN VARCHAR2, estm_recived_date IN date)
IS
Replico_device_info_det_Rec Replico_device_info_det%ROWTYPE := NULL;
REC_ID NUMBER;
BEGIN
SELECT REPLICO_DEVICE_INFO_DET#RECID.nextval INTO REC_ID FROM dual;
Replico_device_info_det_Rec.REC#ID := REC_ID;
Replico_device_info_det_Rec.ACCOUNT_ID := Acc_id;
Replico_device_info_det_Rec.MAC_ID := Mc_Id;
Replico_device_info_det_Rec.CHANNEL_LINE_UP := channel;
Replico_device_info_det_Rec.LOB_VALUE := LOB_VAL;
Replico_device_info_det_Rec.OUTLET := outlet1;
Replico_device_info_det_Rec.KIT_CODE := kit_cod;
Replico_device_info_det_Rec.SERIAL_NUMBER := serial_No;
Replico_device_info_det_Rec.SHIPPER := shipperr;
Replico_device_info_det_Rec.ESTIMATED_RECIVED_DATE := estm_recived_date;
INSERT INTO replico_device_info_det
VALUES Replico_device_info_det_Rec;
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK;
END REPLICO_DEV_INFO;
PROCEDURE SUBSCRIBER_INS_SS (
SOURCE_SYS_ID IN VARCHAR2,
TRACKING_ID IN VARCHAR2,
ACCOUNT_NO IN VARCHAR2,
prepaidActDevDetails_tab IN prepaidActDeviceDetails_tabobj,
ERROR_CODE OUT VARCHAR2)
IS
Input_Parameter_Is_Null EXCEPTION;
PRAGMA EXCEPTION_INIT (Input_Parameter_Is_Null, -2000);
prepaidAccountDetails prepaid_act_dvc_details_obj
:= prepaid_act_dvc_details_obj (NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL);
STATUS VARCHAR2 (1) := '1';
cust_no VARCHAR (10);
m_mac_id VARCHAR2 (20);
channel_lineup VARCHAR2 (25);
LOB_VALUE VARCHAR2 (25);
subscriber_master_Rec subscriber_master%ROWTYPE := NULL;
Replico_device_info_det_Rec Replico_device_info_det%ROWTYPE := NULL;
flg NUMBER (1);
plan_code VARCHAR2(10);
subs_aact_no NUMBER(20);
m_plan_code1 payment_transaction_history.TH_PLAN_CODE%type;
m_payment_mode1 payment_transaction_history.TH_PAYMENT_MODE%type;
pm_phone_no_cur subscriber_master.pm_phone_no%type;
pm_status_cur subscriber_master.pm_status%type;
pm_user2_cur subscriber_master.pm_user2%type;
pm_user9_cur subscriber_master.pm_user9%type;
pm_cust_no_cur subscriber_master.pm_cust_no%type;
pm_cust_1 subscriber_master.pm_cust_no%type;
cm_i customer_master.cm_status%type;
CURSOR subs_rec is select pm_cust_no, pm_phone_no, pm_status, pm_user2, pm_user9 from subscriber_master
where pm_cust_no = cust_no and pm_status= 'S';
BEGIN
IF ( Source_Sys_Id IS NULL
OR Tracking_Id IS NULL
OR ACCOUNT_NO IS NULL
OR prepaidActDevDetails_tab.LAST = 0)
THEN
RAISE Input_Parameter_Is_Null;
END IF;
BEGIN
SELECT cm_cust_no
INTO cust_no
FROM customer_master
WHERE cm_cust_id = ACCOUNT_NO AND cm_status IN ('A', 'P', '0');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
ERROR_CODE := 'SI001';
log_error ('SI001',
SQLERRM,
'No Customer exist with Active or Pre Actiavted');
INSERT_WS_LOG (Source_Sys_Id,
'F',
Tracking_Id,
Account_No,
prepaidAccountDetails.Mac_Id);
STATUS := '0';
END;
BEGIN
FOR i IN prepaidActDevDetails_tab.FIRST ..
(prepaidActDevDetails_tab.LAST)
LOOP
prepaidAccountDetails := prepaidActDevDetails_tab (i);
prepaidAccountDetails.Status_of_device := '1';
IF ( prepaidAccountDetails.Account_id IS NULL
OR prepaidAccountDetails.Mac_Id IS NULL
OR prepaidAccountDetails.LOB_value IS NULL)
THEN
RAISE Input_Parameter_Is_Null;
END IF;
IF (prepaidAccountDetails.LOB_value = 'VIDEO')
THEN
/* Commented as channel lineup is not coming from the input request */
/*IF(prepaidAccountDetails.Channel_Line_Up is NULL) THEN
Error_code :='SI002';
log_error ('SI002', SQLERRM, 'Channel line up is mandatory for Video');
INSERT_WS_LOG(Source_Sys_Id,'F',Tracking_Id,Account_No,prepaidAccountDetails.Mac_Id);
STATUS:=0;
prepaidAccountDetails.Status_of_device:='0';
END IF;*/
SELECT EC_CHANNEL_LINEUP
INTO channel_lineup
FROM ELIGIBLE_CUSTOMER
WHERE EC_CUSTOMER_NO = cust_no;
END IF;
BEGIN
SELECT 1
INTO flg
FROM subscriber_master
WHERE pm_phone_no = prepaidAccountDetails.Mac_Id
AND pm_status IN ('P', '0', 'A', 'B');
EXCEPTION
WHEN NO_DATA_FOUND
THEN
flg := 0;
END;
IF (flg = 1)
THEN
ERROR_CODE := 'SI003';
log_error ('SI003',
SQLERRM,
'Customer Already Exist with given Mac Id');
INSERT_WS_LOG (Source_Sys_Id,
'F',
Tracking_Id,
Account_No,
prepaidAccountDetails.Mac_Id);
STATUS := 0;
prepaidAccountDetails.Status_of_device := '0';
END IF;
BEGIN
SELECT md_mac_id
INTO m_mac_id
FROM mac_details
WHERE md_mac_id = prepaidAccountDetails.Mac_Id
AND md_start_date <= SYSDATE
AND md_status = 'A';
EXCEPTION
WHEN OTHERS
THEN
ERROR_CODE := 'SI004';
log_error ('SI004', SQLERRM, 'Invalid Mac Id');
INSERT_WS_LOG (Source_Sys_Id,
'F',
Tracking_Id,
Account_No,
prepaidAccountDetails.Mac_Id);
STATUS := 0;
prepaidAccountDetails.Status_of_device := '0';
END;
select pm_cust_no into pm_cust_1 from subscriber_master where pm_cust_no = cust_no;
IF (STATUS = 1 AND prepaidAccountDetails.Status_of_device = '1')
THEN
SELECT DECODE (prepaidAccountDetails.LOB_value,
'HSD', 'HSD',
'VIDEO', 'VDO')
INTO LOB_VALUE
FROM DUAL;
OPEN subs_rec;
LOOP
FETCH subs_rec into pm_cust_no_cur, pm_phone_no_cur, pm_status_cur, pm_user2_cur, pm_user9_cur;
IF subs_rec%FOUND THEN
IF
( pm_cust_1 = pm_cust_no_cur and pm_user2_cur= LOB_VALUE and pm_user9_cur = prepaidAccountDetails.outlet and pm_status_cur = 'S')
THEN
update subscriber_master set pm_phone_no = prepaidAccountDetails.Mac_Id, pm_status = 'P', pm_name = prepaidAccountDetails.Mac_Id
where pm_cust_no = pm_cust_no_cur and pm_user9 = prepaidAccountDetails.outlet;
select cm_status into cm_i from customer_master where cm_cust_no = pm_cust_no_cur;
IF( cm_i = '0')
THEN
update customer_master set cm_status = 'P' where cm_cust_no = pm_cust_no_cur;
END IF;
REPLICO_DEV_INFO( prepaidAccountDetails.Account_id, prepaidAccountDetails.Mac_Id,channel_lineup,
prepaidAccountDetails.LOB_value, prepaidAccountDetails.outlet, prepaidAccountDetails.kit_code,
prepaidAccountDetails.serial_Number, prepaidAccountDetails.shipper,prepaidAccountDetails.estimated_recived_date);
ELSIF
( pm_cust_1 = pm_cust_no_cur and pm_user2_cur= LOB_VALUE and pm_user9_cur = null and pm_status_cur = 'S')
THEN
update subscriber_master set pm_phone_no = prepaidAccountDetails.Mac_Id, pm_status = 'P', pm_name = prepaidAccountDetails.Mac_Id, pm_user9 = prepaidAccountDetails.outlet
where pm_cust_no = pm_cust_no_cur and pm_user9 = NULL;
update customer_master set cm_status = 'P' where cm_cust_no = pm_cust_no_cur;
REPLICO_DEV_INFO( prepaidAccountDetails.Account_id, prepaidAccountDetails.Mac_Id,channel_lineup,
prepaidAccountDetails.LOB_value, prepaidAccountDetails.outlet, prepaidAccountDetails.kit_code,
prepaidAccountDetails.serial_Number, prepaidAccountDetails.shipper,prepaidAccountDetails.estimated_recived_date);
END IF;
ELSIF subs_rec%NOTFOUND THEN
SELECT PM_SUBS_ACT_NO_SEQ.NEXTVAL
INTO subs_aact_no
FROM DUAL;
subscriber_master_rec.PM_SUBS_ACT_NO := subs_aact_no;
subscriber_master_Rec.pm_phone_no :=
prepaidAccountDetails.Mac_Id;
subscriber_master_Rec.pm_open_date := SYSDATE;
subscriber_master_rec.pm_status := 'P';
subscriber_master_rec.PM_CUST_LVL_YN := 'S';
subscriber_master_rec.PM_EQUP_CODE := LOB_VALUE;
subscriber_master_rec.PM_HOME_AREA := 'HOM';
subscriber_master_rec.PM_USG_CODE := 'USG';
subscriber_master_rec.PM_NO_TYPE := 'S';
subscriber_master_rec.PM_TCG_CODE := 'DEF';
subscriber_master_rec.PM_APLN_DATE := SYSDATE;
subscriber_master_Rec.PM_NAME := prepaidAccountDetails.Mac_Id;
subscriber_master_Rec.PM_STAFF_id := '16';
subscriber_master_rec.PM_USER2 := LOB_VALUE;
subscriber_master_rec.PM_USER3 := channel_lineup;
subscriber_master_rec.pm_cust_no := cust_no;
subscriber_master_rec.PM_USER8 := 'Y';
INSERT INTO subscriber_master
VALUES subscriber_master_rec;
REPLICO_DEV_INFO( prepaidAccountDetails.Account_id, prepaidAccountDetails.Mac_Id,channel_lineup,
prepaidAccountDetails.LOB_value, prepaidAccountDetails.outlet, prepaidAccountDetails.kit_code,
prepaidAccountDetails.serial_Number, prepaidAccountDetails.shipper,prepaidAccountDetails.estimated_recived_date);
END IF;
END LOOP;
CLOSE subs_rec;
SELECT TH_PLAN_CODE,TH_PAYMENT_MODE
INTO m_plan_code1,m_payment_mode1
FROM PAYMENT_TRANSACTION_HISTORY
WHERE TH_CUSTOMER_NO = cust_no
AND TH_LOB = LOB_VALUE
AND TH_SUBSCRIBER_NO IS NULL;
IF(LOB_VALUE = 'HSD') THEN
IF(m_plan_code1 = 'SIKI') THEN
plan_code := 'SIKI';
ELSE
plan_code := 'KIT';
END IF;
ELSE
IF(m_plan_code1 = 'SIKT') THEN
plan_code := 'SIKT';
ELSE
plan_code := 'TV';
END IF;
END IF;
UPDATE PAYMENT_TRANSACTION_HISTORY SET TH_SUBSCRIBER_NO = subs_aact_no, th_writeback_status = 'Y' WHERE TH_CUSTOMER_NO = cust_no AND TH_PLAN_CODE = plan_code;
COMMIT;
END IF;
END LOOP;
END;
END SUBSCRIBER_INS_SS;
END SUBS_INS_API_SS;
--- type object
create or replace
TYPE prepaid_act_dvc_details_obj--prepaidAccountDeviceDetailsObj
AS OBJECT ( Account_id VARCHAR2 ( 25 )
, Mac_Id VARCHAR2 ( 25 )
, Channel_Line_Up VARCHAR2 ( 25 )
, LOB_value VARCHAR2 ( 25 )
, Status_of_device VARCHAR2 ( 25 )
, outlet VARCHAR2(25)
, kit_code VARCHAR2(25)
, serial_Number VARCHAR2(25)
, shipper VARCHAR2(25)
, estimated_recived_date date )
type---
create or replace
TYPE prepaidActDeviceDetails_tabobj as table of prepaid_act_dvc_details_obj
---- i need to run this package via separate procedure. but i don't know how to pass the variable. because the passing argument contain object tab variable. please help me.. give me suggestion or procedure to run this pkg. -
Error while running the package .
guys,
i created a transformation file is succesfully completed . when i run the package it is showing the error
like
immediate run error while creating to run the package on the server
<appserverurl>>!cdata(http://localhost/osoft></appserverurl
Thanks,
AjHi,
It looks like the server is sending the client an HTML file vs. the XML file it is expecting. Can you run a web trace on it like fiddler?
Cheers, Scott -
Problem Running SSIS Package with a SQL Server Agent
SQL Server: SQL Server 2012
VS: Visual Studio 2012
Hello,
I have been having a problem running SSIS packages by using a SQL Server Agent job. I first created these SSIS packages in a separate IS project in Visual Studio. I imported the packages to the Integration Services (Package
Store) instance on my SQL Server and tried to create a job that would run them from there.
At first I read around about needing a proxy account to allow the agent/packages to access the file system since these packages are importing data from a flat file in the SQL database. So I created a temporary admin user to
use as the user for the agent. I did this by going to Services.msc on the server and linked the account the agent's "logon as". Then arose another issue where I am getting an error about using the incorrect type for my connection managers.
The connection manager "TestFile" is an incorrect type. The type required is "OLEDB". The type available to the component is "FLATFILE". Source: Data Flow Task Flat File Destination [2] Description:
Cannot open the datafile "O:\*****\Success.txt"
I am not sure what this even means as I am getting this error even with a test package that doesn't do anything with the database. I have just two flat file connection managers in this test project one for grabbing the source file and one for
creating the new test file.
I am not sure what to do.
Thanks in advance,
MattI accidently created two posts. The newest one has the details.
I did not mean to.
SQL Server: SQL Server 2012
VS: Visual Studio 2012
Hello,
I have been having a problem running SSIS packages by using a SQL Server Agent job. I first created these SSIS packages in a separate IS project in Visual Studio. I imported the packages to the Integration Services (Package
Store) instance on my SQL Server and tried to create a job that would run them from there.
At first I read around about needing a proxy account to allow the agent/packages to access the file system since these packages are importing data from a flat file in the SQL database. So I created a temporary admin user to
use as the user for the agent. I did this by going to Services.msc on the server and linked the account the agent's "logon as". Then arose another issue where I am getting an error about using the incorrect type for my connection managers.
The connection manager "TestFile" is an incorrect type. The type required is "OLEDB". The type available to the component is "FLATFILE". Source: Data Flow Task Flat File Destination [2] Description:
Cannot open the datafile "O:\*****\Success.txt"
I am not sure what this even means as I am getting this error even with a test package that doesn't do anything with the database. I have just two flat file connection managers in this test project one for grabbing the source file and one for
creating the new test file.
I am not sure what to do.
Thanks in advance,
Matt -
SQL Server Agent Job intermittently running for packages on SSISDB
I created an SSIS package to pull data from OLAP Cube and push it into SQL Server using SSIS 2o12. I deployed the same on the SQL Server SSIS DB and created a SQL Server Agent Job to run the package. I have an account configured to run the job (not by
creating proxy in the job, but SQL Server Agent is running under that account), that has access to the OLAP Cube. The job is running sometimes and failing sometimes. Why the job behaving weirdly. Any help on the issue will help me a lot. I am using SQL Server
2012 SP1 enterprise edition (11.0.3000.0) (if it helps). The error message which pops up when it fails is :
OLE DB Source failed the pre-execute phase and returned error code 0xC0202009
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E05.
An OLE DB record is available. Source: ""Microsoft OLE DB Provider for SQL Server 2012 Analysis Services."" Hresult: 0x00000001 Description: ""Error Code = 0x80040E05, External Code = 0x00000000:."".
"Hi,
You are using Execute SQL Task to run a MDX query, right? If so, here is an approach/workaround for your reference. If the MDX query doesn’t have parameters, you can create a view in SQL running the MDX query and make the Execute SQL Task to get data
from that view. If the MDX query has parameters, you can try a Function and create a stored procedure, and then set the Execute SQL Task to execute that stored procedure.
Regards,
Mike Yin
TechNet Community Support -
PLS-00201 when running dbms_compression package
Hello,
I am trying to gather compression rate estimates in a 10g database before we upgrade to 11g. I have downloaded the dbms compression package from OTN: http://www.oracle.com/technetwork/database/options/compression/compression-advisor-095705.html
And installed this in my 10g db:
SQL> @dbmscomp.sql
Package created.
Synonym created.
Grant succeeded.
No errors.
SQL> @prvtcomp.plb
Package body created.
Synonym created.
Grant succeeded.
No errors.
When I try to run execute this package as shown in the README file, I get the following error:
SQL> exec dbms_compression.getratio ('SAPAPO','/SAPAPO/MATLOC','OLTP',10);
BEGIN dbms_compression.getratio ('SAPAPO','/SAPAPO/MATLOC','OLTP',10); END;
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_COMPRESSION.GETRATIO' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Please let me know if anyone has encountered this error before.
Thank youjhall wrote:
not sure why the readme referenced the dbms_compression package... guess I should have looked through the package creation script. Thanks for looking at this.I don't think it does -- it's stating that this does the same as DBMS_COMPRESSION, but of course they're just implementing partial functionality of one procedure of DBMS_COMPRESSION. They'd name it something different for that reason, and because it's presence might break an upgrade from 10g to 11g.
I'm not a huge fan of this package
1 The compress_type parameter makes no difference to the code execution, but you still have to supply a valid value.
2 The temporary tables that are created probably ought to be NOLOGGING.
3 The uncompressed table is created without any storage clause so a PCTFREE of 10 is used -- that might be appropriate for OLTP compression (I have no idea) but OLTP compression isn't available in 10g so the metrics would be out anyway. It should probably be hardcoded to a value of 0.
4 There's no error handling to remove the temporary tables in the event of a problem, or detect the pre-existence of the DBMS_COMPRESSION_TEMP_UNCMP or DBMS_COMPRESSION_TEMP_CMP tables. -
SQL Server Version running SSIS Package
I´m trying to run an SSIS 2013 Package in SQL Server 2014 but i keep getting the error "package migration from version 8 to version 6 failed with error".
So i ckecked the vertion in SQL Server 2014 using a T-SQL query:
SELECT @@VERSION
and i got:
"Microsoft SQL Server 2012 (SP1) - 11.0.3153.0 (X64) Jul 22 2014 15:26:36 Copyright (c) Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) "
The response for this query should be SQL Server 2014, right?
What should i do to alter this?I think what you meant was SSIS package created using VS 2013. If yes, it will work only on SSIS 2014 server. What you've there is SQL/SSIS 2012 version as shown by @@VERSION result
http://blogs.msdn.com/b/analysisservices/archive/2014/04/03/sql-server-data-tools-business-intelligence-for-visual-studio-2013-ssdt-bi.aspx
SO you should be using SSIS 2014 if you want to deploy the packages
Otherwise use VS 2010 or 2012 SSIS templates for deploying to 2012 server
Please Mark This As Answer if it solved your issue
Please Mark This As Helpful if it helps to solve your issue
Visakh
My MSDN Page
My Personal Blog
My Facebook Page -
Designer not run if repository created in Sybase AS IQ
I create master & work repository into Sybase AS IQ 12. When i run odi designer, i take exception "Column 'MOD_FOLDER_NAME' not found".
Use taracing, i found executed query
Select SNP_MOD_FOLDER.MOD_FOLDER_NAME,SNP_MOD_FOLDER.I_MOD_FOLDER, TXT DESCRIPTION, SNP_MOD_FOLDER.IND_CHANGE, SNP_MOD_FOLDER.FIRST_DATE, SNP_MOD_FOLDER.FIRST_USER, SNP_MOD_FOLDER.LAST_DATE, SNP_MOD_FOLDER.LAST_USER from SNP_MOD_FOLDER,SNP_TXT where PAR_I_MOD_FOLDER is null AND SNP_TXT.I_TXT=SNP_MOD_FOLDER.I_TXT_DESCRIPTION AND SNP_TXT.TXT_ORD=0 UNION Select MOD_FOLDER_NAME,I_MOD_FOLDER,'' DESCRIPTION, IND_CHANGE, FIRST_DATE, FIRST_USER, LAST_DATE, LAST_USER from SNP_MOD_FOLDER where PAR_I_MOD_FOLDER is null AND I_TXT_DESCRIPTION is null order by MOD_FOLDER_NAME
Error throw in order by clause. If change idetificator "MOD_FOLDER_NAME" on to "1" (index of column) Sybase IQ execute query without error. Specification SQL-89 not permit use column name in order by clause if used union or union all.Now, there is a package created in the project by
default and as such, the command I'm using to call it
is java firstprogram/main from the directory below
where main.class is located. If I try to execute
that command from the directory main.class is in, it
can't find the class file, which doesn't surprise me.If firstprogram is a package name, you should be using
java firstprogram.main to execute.
BTW, it is better to use first letter in uppercase for a class name. It helps in distinguishing a class name from a method/variable name. :) -
Which query is running in package
Hi,
I created one package and run this package in toad
like
select reports_package.func_reports('ABC') from dual;
I have 10 delete and 10 insert statement on this .
How I will check which query is running iin database.799301 wrote:
I have 10 delete and 10 insert statement on this .
How I will check which query is running iin database.V$SESSION_LONGOPS holds information on SQL taking > 6 seconds to run but its not always possible to find expected entries in the V$ views
If you're trying to figure out what is slow a better bet would be to perform trace or use DBMS_PROFILER to analyze the PL/SQL -
Found ORA-20072: insufficient privileges when run user package
We use workspace manager
enable version table : FEED_ADMIN.FEED_SET
login with my username : KTEERAYUT that have dba privilege
If we run dbms_wm in sqlplus. It work properly.
KTEERAYUT@BKKXE > BEGIN
2 dbms_wm.Beginresolve('D_1_1');
3 dbms_wm.resolveconflicts('D_1_1','FEED_ADMIN.FEED_SET','','PARENT');
4 COMMIT;
5 dbms_wm.rollbackresolve('D_1_1');
6 COMMIT;
7 END;
PL/SQL procedure successfully completed.
Then try create as procedure with FEED_ADMIN owner.
create procedure feed_admin.test_resolveconflicts_wm(p_workspace_name varchar2)
as
begin
dbms_wm.Beginresolve(p_workspace);
dbms_wm.resolveconflicts(p_workspace,'FEED_ADMIN.FEED_SET','','PARENT');
COMMIT;
dbms_wm.rollbackresolve(p_workspace);
COMMIT;
END;
Then test run with KTEERAYUT
KTEERAYUT@BKKXE > BEGIN
2 feed_admin.test_resolveconflicts_wm('D_1_1');
3 end;
4 /
begin
ERROR at line 1:
ORA-20072: insufficient privileges on 'FEED_ADMIN.FEED_SET'
ORA-06512: at "WMSYS.LT", line 8615
ORA-06512: at "FEED_ADMIN.TEST_RESOLVECONFLICTS_WM", line 5
ORA-06512: at line 2
I already grant all on FEED_ADMIN.FEED_SET to KTEERAYUT but it's still error.
Anyway It work properly if connect and execute with FEED_ADMIN.
So Can I run the package with another username? Which privilege that it's required?Hi Ben,
Thanks for reply. Version of workspace manager is 10.2.0.4.4 on oracle 10.2.0.4 platform is window server 2003 sp2
Below is more detail.
1. Grant workspace manager privs to both user (KTEERAYUT also have dba privs)
GRANT EXECUTE ON dbms_lock TO feed_admin;
GRANT ROLE WM_ADMIN_ROLE TO feed_admin;
GRANT SELECT ON DBA_WORKSPACE_SESSIONS TO feed_admin;
begin
dbms_wm.grantSystemPriv (
'ACCESS_ANY_WORKSPACE, ' ||
'MERGE_ANY_WORKSPACE, ' ||
'CREATE_ANY_WORKSPACE, ' ||
'REMOVE_ANY_WORKSPACE, ' ||
'ROLLBACK_ANY_WORKSPACE',
'feed_admin',
'YES');
END;
GRANT EXECUTE ON dbms_lock TO KTEERAYUT;
GRANT ROLE WM_ADMIN_ROLE TO KTEERAYUT;
GRANT SELECT ON DBA_WORKSPACE_SESSIONS TO KTEERAYUT;
begin
dbms_wm.grantSystemPriv (
'ACCESS_ANY_WORKSPACE, ' ||
'MERGE_ANY_WORKSPACE, ' ||
'CREATE_ANY_WORKSPACE, ' ||
'REMOVE_ANY_WORKSPACE, ' ||
'ROLLBACK_ANY_WORKSPACE',
'apex',
'YES');
END;
2. FEED_ADMIN create table FEED_SET and enable version for FEED_ADMIN.FEED_SET
CREATE TABLE feed_admin.feed_set
(feed_set_id NUMBER PRIMARY KEY,
feed_set_name VARCHAR2(30)
GRANT ALL ON feed_admin.feed_set TO kteerayut;
BEGIN
dbms_wm.enableversioning('feed_set','VIEW_WO_OVERWRITE');
END;
SELECT * FROM ALL_WM_VERSIONED_TABLES;
INSERT INTO feed_admin.feed_set
VALUES (1,'new feed set');
COMMIT;
3. KTEERAYUT create workspace name : WORK
BEGIN
dbms_wm.gotoworkspace('LIVE');
COMMIT;
dbms_wm.createworkspace('WORK_TEST');
dbms_wm.gotoworkspace('WORK_TEST');
COMMIT;
END;
SELECT * FROM feed_admin.feed_set;
FEED_SET_ID FEED_SET_NAME
1 new feed set
4. FEED_ADMIN create procedure name : TEST_REFRESH and grant execute privs to KTEERAYUT
create or replace procedure FEED_ADMIN.Test_refresh is
BEGIN
dbms_wm.Beginresolve('WORK');
dbms_wm.resolveconflicts('WORK','feed_admin.feed_set','','PARENT');
COMMIT;
dbms_wm.Commitresolve('WORK');
COMMIT;
dbms_wm.refreshworkspace('WORK');
end Test_refresh;
GRANT EXECUTE ON Test_refresh TO KTEERAYUT;
5. Login with KTEERAYUT.
5.1 test directly command via sql*plus
BEGIN
dbms_wm.Beginresolve('WORK');
dbms_wm.resolveconflicts('WORK','feed_admin.feed_set','','PARENT');
COMMIT;
dbms_wm.Commitresolve('WORK');
COMMIT;
dbms_wm.refreshworkspace('WORK');
END;
PL/SQL procedure successfully completed.
5.2 but it will fail when call via procedure
BEGIN
feed_admin.Test_refresh;
END;
ERROR at line 1:
ORA-20072: insufficient privileges on 'FEED_ADMIN.FEED_SET'
ORA-06512: at "WMSYS.LT", line 8615
ORA-06512: at "FEED_ADMIN.TEST_REFRESH", line 4
ORA-06512: at line 2
Regards. -
Run Data Package from custom Menu00F9/VBA macro
HI guys,
I have a problem:when creating VBA macro to run Data Package.
I get the pop-up error "400" . This is the VBA code I'm using:
Application.Run "MNU_eDATA_RUNPACKAGE(""Opening""; ""/CPMB/Opening_Balances""; ""Company""; ""Financial Processes"")"
Have you any suggestion for me?
Thanks
Marco UccelloHi Marco,
I'm guessing by prompts you mean user inputs for Entity, Category, Time etc.
These are controlled by the dynamic script associated with the data package.
If you go to the menu eData -> Organise Packages then select a package and go through :
Modify Package -> View Package -> Advanced
You should get to the Data Manager Dynamic Script window.
The following is an example of what should be in here. This is taken directly from the SAP How to Guide "How To Pass Dynamic Parameters to script logic.pdf"
It's the "PROMPT" parts at the start that control the prompts shown to the user (and passed to the data package) :
PROMPT(SELECTINPUT,,,,"%ENTITY_DIM%,%CATEGORY_DIM%,%CURRENCY_DIM%,%TIME_DIM%")
PROMPT(TEXT,%WS_PERCT%,"Input W/S Percent in decimals",)
PROMPT(TEXT,%EXP_PERCT%,"Input Exp. Percent in decimals",)
INFO(%EQU%,=)
INFO(%TAB%,;)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,TAB,%TAB%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,EQU,%EQU%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SUSER,%USER%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SAPPSET,%APPSET%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SAPP,%APP%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SELECTION,%SELECTION%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,LOGICFILENAME, INCREASEPERCENTAGE.LGF)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,REPLACEPARAM,WS_PERCT%EQU%%WS_PERCT%%TAB%EXP_PERCT%EQU%%EXP
_PERCT%)
If you paste that in exactly it will resolve into the right package information which can be seen one step back (via Modify Package -> View Package).
You can modify the prompts as appropriate for the script you are running - the one above from the how to guide has two inputs for percentages which are used within the associated script logic calculation.
Hope this helps.
Thanks.
Bradley Newcombe.
Maybe you are looking for
-
Source System Does Not Exist - Transport Problem
Hi We have the next Landscape in BW 7.0 (Netweaver 2004's) LRDCLNT300 is R3 DEV LRQCLNT700 is R3 QA LBDCLNT100 is BW DEV LBQCLNT700 is BW QA The connections are LBDCLNT100 (BW Dev) use as source system LRDCLNT300 (R3 Dev) LBQ
-
Check if the file exists in the local machine...
Hi, I am getting a problem while checking if the local file exists or not. In the first case the server is same as my local machine. When I try to test if the file exists or not using FILE.exists() it works because I am looking for the file in my mac
-
Date arithmatics not working properly
if i m passing a varchar string and this string is in a default date format then it should be converted to dd-mon-rr SQL> select '12-jan-04'+3 from dual; select '12-jan-04'+3 from dual ERROR at line 1: ORA-01722: invalid number but instead of that if
-
Shared Pool Allocation Problem
Hi everyone, When I execute the following statement from my application, it returns the ORA-04031 29080216 byte can not allocate shared pool ("large pool","unknown object","hash-join subh","kllcqc:kllcqslt") error. SELECT DISTINCT KULLANICIID, NOVELK
-
Where did the change color option go it was in elements 10
In older versions of photoshop elements you could go to enhance and then at the bottom of that list you could "change color" what happened to that option? I LOVED it and used it all the time when colors did not come out correctly.