Workflows than run a function passed as parameter
Hello! I'm making an installation script that calls a list of functions to install each product:
InstallSqlServer
InstallVisualStudio "2013" "\\fileserver1\File Storage\07 Software\COMPUTER INSTALLATION\en_visual_studio_premium_2013_x86_dvd_3009258.iso"
InstallTfs2012PowerTools
Those are functions that contain the required code to install each product.
The problem is that some products require a restart before trying to install them or they will fail, so... I thought of a "workflow" that reboots the system when it's required.
That workflow should:
Accept a function as a parameter
Check it a reboot is required (I have a function that retrieves the information)
Invoke the function passed as parameter (that could have parameters as well! like the InstallVisualStudio function.
In pseudo-code it would be:
workflow (function f)
if RebootPending
Reboot
Invoke f (with its original arguments)
Is it possible to do this?
Thank you!
Desde España / From Spain
Thanks for your response.
You say that some command line option makes it restart the machine if needed. The problem with that is that it breaks the execution of the script, and that is a major drawback. That's why I though about workspaces. I'm very new to PowerShell, sorry.
Is there any way to surpass this problem and make the script run without breaking in the middle?
Desde España / From Spain
No - I said you do not need a function but you need to restart with wait.
Restart-Computer -PSComputername $computer -wait
This will wait on the taks until the remote system is up again. It does not work well against a local system.
A resume-able workflow on the local system takes more steps to save the state of the workflow so it is resume-able or you can split the workflow and schedule the remainder as a task on startup. This is trhe easier method if you are not good with PowerShell.
¯\_(ツ)_/¯
Similar Messages
-
How to pass dynamic parameter to a database function in OBIEE
Hi,
I have a requirement like this. I have to create one report in OBIEE which was in Discoverer. Now in discoverer report there are some calculated item in the worksheet based on database pkg.functions. The parameter which user gives at run time that parameters are then passed to the discoverer calculated items dynamically. But I am not able to do this in OBIEE answers.
Can anyone tell me step by step how I can able to pass the user selected parameter values in OBIEE answer level.
The example:
GET_COMM_VALUE_PTD("AFE Cost & Commitment".Afe Id,:"Period Name(AFE)","AFE Cost & Commitment".Data Sel,"AFE Cost & Commitment".Org Id)
GET_COMM_VALUE_PTD --- Function database
("AFE Cost & Commitment".Afe Id,:"Period Name(AFE)","AFE Cost & Commitment".Data Sel,"AFE Cost & Commitment".Org Id --- Parameters... :"Period Name(AFE)" is the dynamic parameter selected run time by user.
Please help.
Thanks
TitasHi,
I already did that. But the existing discoverer re value report is showing correct value but the OBIEE report with EVALUATE function shows incorrect value.
The requirement is to create a OBIEE Dashboard from a Discoverer existing report. Now in discoverer report theere are several calculated items in worksheet level where database custom function is used and user selected parameter value is passed run time in that function. But when that is created in OBIEE with EVALUATE function in RPD, the report shows incorrect data. Could not understand how to pass the parameter value runtime.
Below is the discoverer 'Show SQL' query and EVALUATE function syntax which has been used.
SELECT APPS.XXBG_PL_PROJ_ANALYSIS_AFE_PKG.GET_COMM_VALUE_PTD(XXBG_PL_PROJ_AFE_V.AFE_ID,
:"Period Name(AFE)",
XXBG_PL_PROJ_AFE_V.DATA_SEL,
XXBG_PL_PROJ_AFE_V.ORG_ID),
XXBG_PL_PROJ_AFE_V.AFE_DESC,
XXBG_PL_PROJ_AFE_V.AFE_NUMBER,
XXBG_PL_PROJ_AFE_V.APPROVED_AFE_AMOUNT
FROM APPS.PA_PERIODS_ALL PA_PERIODS_ALL,
APPS.XXBG_PL_PROJ_AFE_V XXBG_PL_PROJ_AFE_V
WHERE ((XXBG_PL_PROJ_AFE_V.ORG_ID = PA_PERIODS_ALL.ORG_ID))
AND (XXBG_PL_PROJ_AFE_V.DATA_SEL = :"Data Selection(AFE)")
AND (PA_PERIODS_ALL.PERIOD_NAME = :"Period Name(AFE)")
AND (XXBG_PL_PROJ_AFE_V.AFE_NUMBER = :"AFE Number(AFE)")
AND (XXBG_PL_PROJ_AFE_V.OPERATING_UNIT = :"Operating Unit(AFE)")
The EVALUATE function syntax is as below:
EVALUATE('XXBG_PL_PROJ_ANALYSIS_AFE_PKG.GET_COMM_VALUE_PTD(%1,%2,%3,%4)' AS FLOAT , "BG PL Project Analysis Report_1"."AFE Cost & Commitment"."AFE Cost & Commitment.Afe Id", "BG PL Project Analysis Report_1"."Periods 1"."Periods 1.Period Name", "BG PL Project Analysis Report_1"."AFE Cost & Commitment"."AFE Cost & Commitment.Data Sel", "BG PL Project Analysis Report_1"."AFE Cost & Commitment"."AFE Cost & Commitment.Org Id")
The PERIOD needs to be passed at run time which user will select.
Please help to solve the issue. -
Passing query parameter through xcelsius 2011 at run time
I am using reporting service as a web connectivity and I am trying to pass the query parameter at run time from the dashboard. While executing the xcelsius at first time it is working well with the default value but after passing the parameter from combo box, the data is not loading. It is not returning anything except the field name.
I am new to this xcelsius. Your help will be really appreciated.
Thanks.Hi,
if you do the following thing,i think it may be helpfull,
First select Data in menubar>Connection->select required connection>select the useage option in connection definition window>give trigger cell value as combo box destination cell.
Thanks,
Ramana -
URGENT: passing more than one value at the same parameter
Hello friends at www.oracle.com,
if I have a Forms program that sends some parameters to a Report, how can I send more than one value at the same parameter that is being sent?
For example: the Reports parameter P_CODE should receive (from Forms) and print the values 1, 2, 3 and 4, each one in a different page. But, only 4 is being printed, and these values aren't saved at a database, so I have to pass the other three values too. How can I solve this problem?
This is quite urgent and I need help on this.
Best regards,
Franklin Gongalves Jr.
[email protected]Thanks to Oracle Reports Team for answering! I'm sure this will work.
Best regards,
Franklin Gongalves Jr.
[email protected]
hello,
on the forms side, you will have to build the list for this parameter by e.g. string concat.
on the reports side you will have to "decode" this parameter according to how you built it in forms.
e.g. if you pass the list like this "10~20~30" you might use a where-clause in the query
... where instr(myCol, :myParam) >0
regards,
the oracle reports team --pw -
Pass a Parameter to Function?
Hi All,
can you please tell me is it possible to pass a parameter to a function in the Select statement
for example
select * from table(test.get_trans_by_period('141', '123456874', '20000101', '20100101'))
How can I use BI Publisher to pass the values using parameters
I tried
select * from table(test.get_trans_by_period(:p_param1, :p_param2, :p_param3, :p_param4))
but it's not working
BR,
RossyYou can write a data template, and call the function from within the xml block for the data template, as in a database query.
The rtf supports xsl code behind the tags, so can write xsl code in rtf. -
How to pass select-option filed to Function Module Exporting Parameter
Hi,
How to pass select-option filed to Function Module Exporting Parameter.
ThanksHi,
DATA: BEGIN OF ITAB5_WRK OCCURS 0,
KUNNR TYPE KNKK-KUNNR, "CUSTOMER #
SBGRP TYPE KNKK-SBGRP, "CREDIT REP
KLIMK TYPE KNKK-KLIMK, "CREDIT LIMIT
NAME1 TYPE KNA1-NAME1, "CUSTOMER NAME
SKFOR TYPE KNKK-SKFOR, "TOTAL A/R
AMT1 TYPE KNKK-SKFOR, "CURRENT
AMT2 TYPE KNKK-SKFOR, "01-30
AMT3 TYPE KNKK-SKFOR, "31-60
AMT4 TYPE KNKK-SKFOR, "61-90
AMT5 TYPE KNKK-SKFOR, "91-120
AMT6 TYPE KNKK-SKFOR, "OVR 120
BZIRK TYPE KNVV-BZIRK,
END OF ITAB5_WRK.
SELECT-OPTIONS P_COMP FOR T001-BUKRS
SELECT KUNNR SBGRP FROM KNKK
INTO TABLE ITAB5_WRK
WHERE SBGRP IN P_REP
AND KUNNR GE '0001000000'
AND SKFOR NE 0.
LOOP AT ITAB5_WRK.
DELETE ADJACENT DUPLICATES FROM ITAB5_WRK COMPARING KUNNR.
ENDLOOP.
PERFORM GET_CREDIT_LIMITS.
*=======================================================================
IF P_DIST NE SPACE.
LOOP AT ITAB5_WRK.
SELECT SINGLE * FROM KNVV WHERE KUNNR EQ ITAB5_WRK-KUNNR
AND VKORG EQ P_COMP
AND VTWEG EQ '20'
AND SPART EQ '10'
AND BZIRK IN P_DIST.
IF SY-SUBRC EQ 0.
MOVE KNVV-BZIRK TO ITAB5_WRK-BZIRK.
MODIFY ITAB5_WRK.
ELSE.
DELETE ITAB5_WRK.
ENDIF.
ENDLOOP.
ENDIF.
*==============================================================
LOOP AT ITAB5_WRK.
MOVE: 'F/S' TO WRK-KKBER,
ITAB5_WRK-KUNNR TO WRK-KUNNR.
PERFORM AGING.
ADD: W_SNFAE TO ITAB5_WRK-AMT1,
W_SFAE1 TO ITAB5_WRK-AMT2,
W_SFAE2 TO ITAB5_WRK-AMT3,
W_SFAE3 TO ITAB5_WRK-AMT4,
W_SFAE4 TO ITAB5_WRK-AMT5,
W_SFAE5 TO ITAB5_WRK-AMT6,
W_SFAEL TO ITAB5_WRK-SKFOR,
W_SNFAE TO ITAB5_WRK-SKFOR.
MOVE: 'SPEC' TO WRK-KKBER,
ITAB5_WRK-KUNNR TO WRK-KUNNR.
*PERFORM AGING.*
ADD: W_SNFAE TO ITAB5_WRK-AMT1,
W_SFAE1 TO ITAB5_WRK-AMT2,
W_SFAE2 TO ITAB5_WRK-AMT3,
W_SFAE3 TO ITAB5_WRK-AMT4,
W_SFAE4 TO ITAB5_WRK-AMT5,
W_SFAE5 TO ITAB5_WRK-AMT6,
W_SFAEL TO ITAB5_WRK-SKFOR,
W_SNFAE TO ITAB5_WRK-SKFOR.
MODIFY ITAB5_WRK.
ENDLOOP.
FORM AGING.
*CALL FUNCTION 'CUSTOMER_DUE_DATE_ANALYSIS'*
EXPORTING
BUKRS = P_COMP
KKBER = WRK-KKBER
KUNNR = WRK-KUNNR
RASID = 'FEND'
KLIMP = 'X'
IMPORTING
SFAE1 = W_SFAE1
SFAE2 = W_SFAE2
SFAE3 = W_SFAE3
SFAE4 = W_SFAE4
SFAE5 = W_SFAE5
SFAE6 = W_SFAE6
SFAEL = W_SFAEL
SNFA1 = W_SNFA1
SNFA2 = W_SNFA2
SNFA3 = W_SNFA3
SNFA4 = W_SNFA4
SNFA5 = W_SNFA5
SNFA6 = W_SNFA6
SNFAE = W_SNFAE
EXCEPTIONS
NO-AGING_SCHEDULE = 1
NO_TABLE_INPUT = 2.
CASE SY-SUBRC.
WHEN 1.
MESSAGE E999 WITH 'PLEASE ENTER AGING SCHEDULE'.
WHEN 2.
MESSAGE E999 WITH 'DO NOTHING ??'.
ENDCASE.
ENDFORM. "AGING
Thanks -
Passing a parameter to a function via an alias
Hi all,
Is it possible to pass a fixed value to a function from a alias?
For example say you have a function which opens a web browser and that function accepts a parameter for the URL that you want the browser to load. You can then just call the function and pass the URL across. This will then load the browser with the specified
URL.
What I want to try and do is create an alias called openMS. This alias would call the function and pass the url microsoft.com across. I could then create multiple aliases for opening various pages and use just one function.
I've had a bit of a search but can't seem to find anything so not sure if what I'm trying to do is possible.
Thanks
PeterYou can't do that with an alias, but you can just write another function to accomplish that. The "help" and "mkdir" functions are examples of this technique in the built-in PowerShell commands. "help" pipes Get-Help to more,
and "mkdir" calls New-Item with a hard-coded parameter of -Type Directory . You can see the code for each of those by typing $function:help and $function:mkdir . -
Passing reference to a function as a parameter?
Is it possible to pass a reference to a function as a parameter to a function in Java? If so, how would I do this?
banker2010 wrote:
georgemc wrote:
banker2010 wrote:
georgemc wrote:
banker2010 wrote:
ner0 wrote:
Is it possible to pass a reference to a function as a parameter to a function in Java? If so, how would I do this?how do you pass a reference? where did you get this idea?Where did you get the idea you couldn't? Not from the old "Java is pass-by-value" thing, I hope. Because references are indeed passed. By value. Think about itgeorge, doesnt the book say an address or a pointer is passed in? where did you get the idea that java passes references? NO! it does not! and nobody does! never!I said "think about it"
Don't tell me, we're mocked by valoo or some such rubbishyeah, think! the bits that are passed in represent an address or a pointer, NOT a reference! who or what passes a reference!
demock yourself!Bye bye, daffy -
How to pass a parameter with more than one value to a report? (urgent)
Hi, all
I try to pass a parameter from a search form to a report in
which I would like to print out my search result. My problem is
I can pass the parameter to report but only one value which my
cursor points to. could anyone tell me how to pass a list of
value to the report? my trigger in form like this:
declare
PL_ID PARAMLIST;
sc_no books.c_no%type;
begin
PL_ID := GET_PARAMETER_LIST('parametername');
IF NOT ID_NULL(PL_ID) THEN
DESTROY_PARAMETER_LIST(PL_ID);
END IF;
PL_ID := CREATE_PARAMETER_LIST('parametername');
IF ID_NULL(PL_ID) THEN
MESSAGE('PL/SQL held against Button failed to execute');
RAISE FORM_TRIGGER_FAILURE;
END IF;
ADD_PARAMETER(PL_ID, 'PARAMFORM', TEXT_PARAMETER,'NO');
sc_no := :searchlist.c_no; --(c_no is the value I want to pass
but not only one.)
ADD_PARAMETER(PL_ID, 'pamametername', TEXT_PARAMETER, sc_no);
RUN_PRODUCT(REPORTS, 'reportpathname.rep', SYNCHRONOUS, RUNTIME,
FILESYSTEM, PL_ID, NULL);
end;
Thank you in advance
DianaIs it your values in parameter NO separated by coma? And is it
parameter in where clause?
Do you want something like :
from table
where s_no in (NO) ?
If is answer "yes" you can create lexical parameter in report.
You can write in report sowething like:
select a.field1, a.field2,.....
from table a
&COND /* this is if is condition only one line after "from".
if you have more lien after where then you will put this &COND
in line where you want to have your multivalue.
Then in your trigger in form you should write:
sc_no := 'where a.sc_no in ('||:searchlist.c_no||')';
ADD_PARAMETER(PL_ID, 'pamametername', TEXT_PARAMETER, sc_no);
/* again this is if you have only one line with WHERE ili
conditions */
or you will write:
sc_no := 'and a.sc_no in ('||:searchlist.c_no||')';
ADD_PARAMETER(PL_ID, 'pamametername', TEXT_PARAMETER, sc_no);
It will substitute line in which is your conditions with
multivalue. -
Passing a parameter from one class to another class in the same package
Hi.
I am trying to pass a parameter from one class to another class with in a package.And i am Getting the variable as null every time.In the code there is two classes.
i. BugWatcherAction.java
ii.BugWatcherRefreshAction.Java.
We have implemented caching in the front-end level.But according to the business logic we need to clear the cache and again have to access the database after some actions are happened.There are another class file called BugwatcherPortletContent.java.
So, we are dealing with three java files.The database interaction is taken care by the portletContent.java file.Below I am giving the code for the perticular function in the bugwatcherPortletContent.java:
==============================================================
public Object loadContent() throws Exception {
Hashtable htStore = new Hashtable();
JetspeedRunData rundata = this.getInputData();
String pId = this.getPorletId();
PortalLogger.logDebug(" in the portlet content: "+pId);
pId1=pId;//done by sraha
htStore.put("PortletId", pId);
htStore.put("BW_HOME_URL",CommonUtil.getMessage("BW.Home.Url"));
htStore.put("BW_BUGVIEW_URL",CommonUtil.getMessage("BW.BugView.Url"));
HttpServletRequest request = rundata.getRequest();
PortalLogger.logDebug(
"BugWatcherPortletContent:: build normal context");
HttpSession session = null;
int bugProfileId = 0;
Hashtable bugProfiles = null;
Hashtable bugData = null;
boolean fetchProfiles = false;
try {
session = request.getSession(true);
// Attempting to get the profiles from the session.
//If the profiles are not present in the session, then they would have to be
// obtained from the database.
bugProfiles = (Hashtable) session.getAttribute("Profiles");
//Getting the selected bug profile id.
String bugProfileIdObj = request.getParameter("bugProfile" + pId);
// Getting the logged in user
String userId = request.getRemoteUser();
if (bugProfiles == null) {
fetchProfiles = true;
if (bugProfileIdObj == null) {
// setting the bugprofile id as -1 indicates "all profiles" is selected
bugProfileIdObj =(String) session.getAttribute("bugProfileId" + pId);
if (bugProfileIdObj == null) {
bugProfileId = -1;
else {
bugProfileId = Integer.parseInt(bugProfileIdObj);
else {
bugProfileId = Integer.parseInt(bugProfileIdObj);
session.setAttribute(
("bugProfileId" + pId),
Integer.toString(bugProfileId));
//fetching the bug list
bugData =BugWatcherAPI.getbugList(userId, bugProfileId, fetchProfiles);
PortalLogger.logDebug("BugWatcherPortletContent:: got bug data");
if (bugData != null) {
Hashtable htProfiles = (Hashtable) bugData.get("Profiles");
} else {
htStore.put("NoProfiles", "Y");
} catch (CodedPortalException e) {
htStore.put("Error", CommonUtil.getErrMessage(e.getMessage()));
PortalLogger.logException
("BugWatcherPortletContent:: CodedPortalException!!",e);
} catch (Exception e) {
PortalLogger.logException(
"BugWatcherPortletContent::Generic Exception!!",e);
htStore.put( "Error",CommonUtil.getErrMessage(ErrorConstantsI.GET_BUGLIST_FAILED));
if (fetchProfiles) {
bugProfiles = (Hashtable) bugData.get("Profiles");
session.setAttribute("Profiles", bugProfiles);
// putting the stuff in the context
htStore.put("Profiles", bugProfiles);
htStore.put("SelectedProfile", new Integer(bugProfileId));
htStore.put("bugs", (ArrayList) bugData.get("Bugs"));
return htStore;
=============================================================
And I am trying to call this function as it can capable of fetching the data from the database by "getbugProfiles".
In the new class bugWatcherRefreshAction.java I have coded a part of code which actually clears the caching.Below I am giving the required part of the code:
=============================================================
public void doPerform(RunData rundata, Context context,String str) throws Exception {
JetspeedRunData data = (JetspeedRunData) rundata;
HttpServletRequest request = null;
//PortletConfig pc = portlet.getPortletConfig();
//String userId = request.getRemoteUser();
/*String userId = ((JetspeedUser)rundata.getUser()).getUserName();//sraha on 1/4/05
String pId = request.getParameter("PortletId");
PortalLogger.logDebug("just after pId " +pId); */
//Calling the variable holding the value of portlet id from BugWatcherAction.java
//We are getting the portlet id here , through a variable from BugWatcherAction.java
/*BugWatcherPortletContent bgAct = new BugWatcherPortletContent();
String portletID = bgAct.pId1;
PortalLogger.logDebug("got the portlet ID in bugwatcherRefreshAction:---sraha"+portletID);*/
// updating the bug groups
Hashtable result = new Hashtable();
try {
request = data.getRequest();
String userId = ((JetspeedUser)data.getUser()).getUserName();//sraha on 1/4/05
//String pId = (String)request.getParameter("portletId");
//String pId = pc.getPorletId();
PortalLogger.logDebug("just after pId " +pId);
PortalLogger.logDebug("after getting the pId-----sraha");
result =BugWatcherAPI.getbugList(profileId, userId);
PortalLogger.logDebug("select the new bug groups:: select is done ");
context.put("SelectedbugGroups", profileId);
//start clearing the cache
ContentCacheContext cacheContext = getCacheContext(rundata);
PortalLogger.logDebug("listBugWatcher Caching - removing markup content - before removecontent");
// remove the markup content from cache.
PortletContentCache.removeContent(cacheContext);
PortalLogger.logDebug("listBugWatcher Caching-removing markup content - after removecontent");
//remove the backend content from cache
CacheablePortletData pdata =(CacheablePortletData) PortletCache.getCacheable(PortletCacheHelper.getUserHandle(((JetspeedUser)data.getUser()).getUserName()));
PortalLogger.logDebug("listBugWatcher Caching User: " +((JetspeedUser)data.getUser()).getUserName());
PortalLogger.logDebug("listBugWatcher Caching pId: " +pId);
if (pdata != null)
// User's data found in cache!
PortalLogger.logDebug("listBugWatcher Caching -inside pdata!=null");
pdata.removeObject(PortletCacheHelper.getUserPortletHandle(((JetspeedUser)data.getUser()).getUserName(),pId));
PortalLogger.logDebug("listBugWatcher Caching -inside pdata!=null- after removeObject");
PortalLogger.logDebug("listBugWatcher Caching -finish calling the remove content code");
//end clearing the cache
// after clearing the caching calling the data from the database taking a fn from the portletContent.java
PortalLogger.logDebug("after clearing cache---sraha");
BugWatcherPortletContent bugwatchportcont = new BugWatcherPortletContent();
Hashtable httable= new Hashtable();
httable=(Hashtable)bugwatchportcont.loadContent();
PortalLogger.logDebug("after making the type casting-----sraha");
Set storeKeySet = httable.keySet();
Iterator itr = storeKeySet.iterator();
while (itr.hasNext()) {
String paramName = (String) itr.next();
context.put(paramName, httable.get(paramName));
PortalLogger.logDebug("after calling the databs data from hashtable---sraha");
} catch (CodedPortalException e) {
PortalLogger.logException("bugwatcherRefreshAction:: Exception- ",e);
context.put("Error", CommonUtil.getErrMessage(e.getMessage()));
catch (Exception e) {
PortalLogger.logException("bugwatcherRefreshAction:: Exception- ",e);
context.put( "Error",CommonUtil.getErrMessage(ErrorConstantsI.EXCEPTION_CODE));
try {
((JetspeedRunData) data).setCustomized(null);
if (((JetspeedRunData) data).getCustomized() == null)
ActionLoader.getInstance().exec(data,"controls.EndCustomize");
catch (Exception e)
PortalLogger.logException("bugwatcherRefreshAction", e);
===============================================================
In the bugwatcher Action there is another function called PostLoadContent.java
here though i have found the portlet Id but unable to fetch that in the bugWatcherRefreshAction.java . I am also giving the code of that function under the bugWatcherAction.Java
================================================
// Get the PortletData object from intermediate store.
CacheablePortletData pdata =(CacheablePortletData) PortletCache.getCacheable(PortletCacheHelper.getUserHandle(
//rundata.getRequest().getRemoteUser()));
((JetspeedUser)rundata.getUser()).getUserName()));
pId1 = (String)portlet.getID();
PortalLogger.logDebug("in the bugwatcher action:"+pId1);
try {
Hashtable htStore = null;
// if PortletData is available in store, get current portlet's data from it.
if (pdata != null) {
htStore =(Hashtable) pdata.getObject( PortletCacheHelper.getUserPortletHandle(
((JetspeedUser)rundata.getUser()).getUserName(),portlet.getID()));
//Loop through the hashtable and put its elements in context
Set storeKeySet = htStore.keySet();
Iterator itr = storeKeySet.iterator();
while (itr.hasNext()) {
String paramName = (String) itr.next();
context.put(paramName, htStore.get(paramName));
bugwatcherRefreshAction bRefAc = new bugwatcherRefreshAction();
bRefAc.doPerform(pdata,context,pId1);
=============================================================
So this is the total scenario for the fetching the data , after clearing the cache and display that in the portal.I am unable to do that.Presently it is still fetching the data from the cache and it is not going to the database.Even the portlet Id is returning as null.
I am unable to implement that thing.
If you have any insight about this thing, that would be great .As it is very urgent a promt response will highly appreciated.Please send me any pointers or any issues for this I am unable to do that.
Please let me know as early as possible.
Thanks and regards,
Santanu Raha.Have you run it in a debugger? That will show you exactly what is happening and why.
-
How do I Pass a parameter to a SQL Component Task where the source SQL statement is also a variable
Hi,
I have been tasked with making a complex package more generic.
To achieve this I need to pass a parameter to a SQL Component Task where the source SQL statement is also a variable.
So to help articulate my question further I have create a package and database as follows; -
USE [KWPlay]
GO
/****** Object: Table [dbo].[tblTest] Script Date: 05/14/2014 17:08:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tblTest](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Description] [nvarchar](50) NULL,
CONSTRAINT [PK_tblTest] PRIMARY KEY CLUSTERED
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
I populated this table with a single record.
I unit tested the SQL within SSMS as follows;
SELECT * FROM dbo.tblTest
Result; -
ID
Description
1
Happy
DECLARE @myParam NVARCHAR(100)
SET @myParam = 'Sad'
UPDATE dbo.tblTest SET [Description] = @myParam FROM dbo.tblTest WHERE ID = 1
SELECT * FROM dbo.tblTest
Result; -
ID
Description
1
Sad
Within the package I created two variables as follows; -
Name: strSQL
Scope: Package
Data Type: String
Value: UPDATE dbo.tblTest SET [Description] = @myParam FROM dbo.tblTest WHERE ID = 1
Name: strStatus
Scope: Package
Data Type: String
Value: Happy
I then created a single ‘Execute SQL Task’ component within the control flow as follows; -
However when I run the above package I get the following error; -
SSIS package "Package.dtsx" starting.
Error: 0xC002F210 at Execute SQL Task, Execute SQL Task: Executing the query "UPDATE dbo.tblTest SET [Description] = @myParam FR..." failed with the following error:
"Parameter name is unrecognized.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Task failed: Execute SQL Task
Warning: 0x80019002 at Package: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED.
The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the
errors.
SSIS package "Package.dtsx" finished: Failure.
I also tried; -
Name: strSQL
Scope: Package
Data Type: String
Value: UPDATE dbo.tblTest SET [Description] = ? FROM dbo.tblTest WHERE ID = 1
However I received the error; -
SSIS package "Package.dtsx" starting.
Error: 0xC002F210 at Execute SQL Task, Execute SQL Task: Executing the query "UPDATE dbo.tblTest SET [Description] = ? FROM dbo...." failed with the following error: "Parameter name is unrecognized.". Possible failure reasons: Problems with
the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Task failed: Execute SQL Task
Warning: 0x80019002 at Package: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (1) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches
the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
SSIS package "Package.dtsx" finished: Failure.
Kind Regards,
Kieran.
Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/Tried; -
Name: strSQL
Scope: Package
Data Type: String
Value: UPDATE dbo.tblTest SET [Description] = ? FROM dbo.tblTest WHERE ID = 1
and; -
Result; -
SSIS package "Package.dtsx" starting.
SSIS package "Package.dtsx" finished: Success.
Therefore the answer was to put the parameter number rather than the parameter name under the parameter mapping tab-> parameter name column.
Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/ -
Passing a parameter to an Excel file when opening it
I would like to know if it is possible to pass a parameter to an Excel file when calling that file from within another Excel file using VBA. I am using the 2007 version. An example of what I would like to do is what we use to do with DOS programs and command
line parameters. I would like to have the Excel file I just opened do something depending on the parameter passed to it and then close.
Might be an easy question but I'm stumped. Any ideas?Step.1 Create a macro-enabled workbook
Step.2 Open the workbook, and open the VBA, insert a moudle, copy and paste the following code sample in the module
Option Base 0
Option Explicit
Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineW" () As Long
Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (MyDest As Any, MySource As Any, ByVal MySize As Long)
Function CmdToSTr(Cmd As Long) As String
Dim Buffer() As Byte
Dim StrLen As Long
If Cmd Then
StrLen = lstrlenW(Cmd) * 2
If StrLen Then
ReDim Buffer(0 To (StrLen - 1)) As Byte
CopyMemory Buffer(0), ByVal Cmd, StrLen
CmdToSTr = Buffer
End If
End If
End Function
Step.4 Copy and paste the following code sample into ThisWorkbook
Private Sub Workbook_Open()
Dim CmdRaw As Long
Dim CmdLine As String
Dim myParam As String
CmdRaw = GetCommandLine
CmdLine = CmdToSTr(CmdRaw)
myParam = Right(CmdLine, 6)
MsgBox myParam
End Sub
Step.4 Sign your code or modify the macro security settings to allow the macro to run automatically
Step.5 Save and close the workbook
Step.6 Run command line with the parameter, for example:
Excel "Server\ShareFolder\TheWorkbook.xlsm" /e/myParam
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The code sample above will pass the last 6 characters (modify the code if you need more or less) to the workbook
The workbook will display a message box to display the parameter we passed from the command line, add the other function as you need
The code sample refers to the reply from Air_Cooled_Nut in
http://www.vbforums.com/showthread.php?366559-Excel-How-to-Pass-Command-Line-Parameter-DKenny-is-KING!
Max Meng
TechNet Community Support
A new Office has arrived, try it now.
A beautiful Start. It begins here. Windows 8 and Windows RT.
Please remember to mark the replies as answers if they help and unmark them if they provide no help. -
Error in running a function to convert coordinates in degrees to decimal for EXCEL VBA
For your information, I have 3 cross-posts regarding this question - and all I can said there is still no firm solution regarding this error.
1) http://stackoverflow.com/questions/27634586/error-in-running-a-function-to-convert-coordinates-in-degrees-to-decimal-for-exc/27637367#27637367
2) http://www.mrexcel.com/forum/excel-questions/826099-error-running-function-convert-coordinates-degrees-decimal-excel-visual-basic-applications.html#post4030377
3) http://www.excelguru.ca/forums/showthread.php?3909-Error-in-running-a-function-to-convert-coordinates-in-degrees-to-decimal-for-EXCEL-VB&p=16507#post16507
and the story of the error is as below:
Currently I am working on VBA excel to create a widget to verify coordinates whether it lies under the radius of ANOTHER predefined and pre-specified sets of coordinates.
In the module, I want to convert the coordinates from degrees to decimal before doing the calculation - as the formula of the calculation only allow the decimal form of coordinates.
However, each and every time I want to run the macros this error (Run-time error '5', invalid procedure call or argument) will appear. Then, the debug button will bring me to below line of coding:
degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))
For your information, the full function is as below:
Function Convert_Decimal(Degree_Deg As String) As Double
'source: http://support.microsoft.com/kb/213449
Dim degrees As Double
Dim minutes As Double
Dim seconds As Double
Degree_Deg = Replace(Degree_Deg, "~", "°")
degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))
minutes = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, _
InStr(1, Degree_Deg, "'") - InStr(1, Degree_Deg, "°") - 2)) / 60
seconds = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "'") + _
2, Len(Degree_Deg) - InStr(1, Degree_Deg, "'") - 2)) / 3600
Convert_Decimal = degrees + minutes + seconds
End Function
Thank you.
Your kind assistance and attention in this matter are highly appreciated.
Regards,
Nina.You didn't give an example of your input string but try the following
Sub test()
Dim s As String
s = "180° 30' 30.5""""" ' double quote for seconds
Debug.Print Deg2Dec(s) ' 180.508472222222
End Sub
Function Deg2Dec(sAngle As String) As Double
Dim mid1 As Long
Dim mid2 As Long
Dim degrees As Long
Dim minutes As Long
Dim seconds As Double ' or Long if only integer seconds
sAngle = Replace(sAngle, " ", "")
mid1 = InStr(sAngle, "°")
mid2 = InStr(sAngle, "'")
degrees = CLng(Left$(sAngle, mid1 - 1))
minutes = CLng(Mid$(sAngle, mid1 + 1, mid2 - mid1 - 1))
seconds = Val(Mid$(sAngle, mid2 + 1, 10)) ' change 10 to 2 if only integer seconds
Deg2Dec = degrees + minutes / 60 + seconds / 3600
End Function
As written the function assumes values for each of deg/min/sec are included with unit indicators as given. Adapt for your needs.
In passing, for any work with trig functions you will probably need to convert the degrees to radians. -
Passing a parameter list from a web form to a report
I am using FORMS6 and REPORTS6, with OAS 4.07 on NT4 (SP3).
In client server mode all works well - i am able to pass parameter lists from my calling form to the relevant reports and view them (using RUN_PRODUCT).
However, when i try and do the same by deploying the web Form I come up against several obstacles.
1. How do you pass a parameter list over without using "Paramform=Yes" - a waste of time seeing a html version of the reports parameter form when all the necessary parameters have been selected in the form.
2. if i use web.show_document, with paramform=no, the report runs but with it's default settings.
Any light you can shed would be greatly appreciated.Hi Tony ,
Launcher form is just a simple form(Non database form) which will be having all fields that is required for the report and button to run the report .
When button pressed trigger
Pass all the parameters which are required using Run_product tool & Call the report by Web.Show_document
Best way to see the report is in .pdf format in adobe acrobat reader
I hope it will help you
Bye
Rao guduru -
How to pass a parameter from one action1 in block1 to action2 in block2.
Dear Experts,
How to pass a parameter from one action1 in block1 to action2 in block2.
My Process Structure is as follows..
Process
Sequential Block
Action 1
Parallel Dynamic Block
Sequential Sub Block
Action 2.
while i am trying to execute the action1 the following error is shown below:
Cannot complete action: The activity could not be read.
Please suggest me how to do?
Regards,
Rajesh NHello Rajesh!
I think you are talk about the mapping parameters of your process.
This case in design time of your workflow, you have the vision of your blocks and actions, you have on action 1 the output parameter and you have the action 2 an input parameter.
So you have that make a group mapping on your process, map in this group the action1 outpu parameter with the action2 input parameter.
Regards, Ronaldo Rampelotti
Maybe you are looking for
-
Delete or Remove a form field in a PDF
I'm accessing a form via JSObject with VB. I can get the field names by jsobject.getfields("Fieldname") and change their values, but I want to remove fields in the document and haven't been able to find anything in the documentation that does this.
-
Why do I keep finding recovery files in my trash?
MSO8AAC925BF11 file is in my trash for no reason...anybody?
-
Hi, I am preparing to give OCA certification. And this may sound to be a stupid question but I have a doubt. OCA certification as a whole consists of two parts right 1Z0-051 - SQL Fundamentals I 1Z0-052 - Oracle DBA Fundamentals I Are the above two s
-
Flash Hobbyist Looking for Learning Suggestions
I need some direction. I can animate pretty well using flash, but I have limited knowledge of actionscript and a terrible understanding of integrating Flash based content into web pages. The only way of using flash that I know of is to create a singl
-
Lyrics fail: Override Parent Setting is greyed out
I'm trying to add lyrics. I have my Concert, Set and Patches ready. In the Edit screen I click my patch. Then I click layout and bring in a text box. When I go back into edit mode Override Parent Setting is greyed out. When I click on different patch