How to engage Shell Script resource action in an Active Sync workflow.

A little background, at my organization I have IDM set up simply to recognize changes in LDAP and transmit those changes, via active sync, to AD. We don't yet use the IDM interface to make any changes to users, instead we use external interfaces that we have written to make changes to LDAP which then get picked up via Active Sync and synchronized to AD. However, in addition to AD, there are several other resources that we would like to gradually wrap into this active sync workflow via native and custom resource adapters. Currently I am working on a simple Shell Script resource to manage Linux home directories. I have written all the necessary code and created the resource itself within IDM. This all seems to work, I can create, delete, disable, etc.. users in our Linux environment from the IDM interface.
Here is the problem, I would like to integrate the creation, deletion, enabling, disabling, etc.. of users into the same Active Sync workflow that engages whenever a change is made to LDAP. This way, whenever a user is created in LDAP (and consequently AD), that user will be granted a home directory in Linux. Unfortunately it seems that Shell Script Resources are not enabled for Active Sync. Any ideas on how one might accomplish this?
Thanks in advance.

Thank you for the prompt reply. Funny thing is that I have been banging my head on this problem for a couple weeks now (this is my first attempt at real customization ... ). I finally got desperate and decided to reach out for help. After I posted this message I came to a realization that ended up solving the problem for me, go figure.
For anyone in my place I can relate what I ended up doing, simple as it was. Keep in mind, of course, that this is a highly customized environment that I am working in so the specifics probably wont apply. What I basically did, is I found an LDAPCreateUserProcess form that gets invoked when Active Sync is run. For all I could tell, this simply processed the new attributes that came through Active Sync and related them to their llighthouse / AD counterarts. But I noticed a line like this:
<Field name="waveset.resources">
<Expansion>
<filterdup>
<appendAll>
<ref>waveset.resources</ref>
<s>AD</s>
</appendAll>
</filterdup>
</Expansion>
</Field>
and simply added the name of my shell script resource under the <s>AD</s> line. That was it.
Anyway, thanks bobm53, I can now get on with my life :-)

Similar Messages

  • Configuring Shell Script Resource on IDM

    Hi all,
    I am in the process of configuring a Shell Script Resource on my IDM system.
    I used the Shell-Script-Resource-Object.xml (which is provided by IDM in the Samples folder).
    So far, everything worked fine. I set up the parameters, tested the "Test Configuration" button, and it was successful.
    The next phase is to proceed with the basic tasks (such as : create user, update user, delete user, etc)
    This is where my problem lies.
    The IDM manuals do not say anything about how this should be done. Neither do any of Sun's reference material (perhaps, I'm looking in the wrong place??)
    I know that the "Resource Actions" should contain the scripts themselves. But, there's no mention of how those scripts should be configured.
    The scripts themselves reside on the UNIX machine, which is where they should be. But, how should I invoke them?
    Any help will be much appreciated.
    Thanks

    OK.
    I created an entirely new script, which allows me to CAPTURE the data (parameters) from IDM, and use them to create a new user.
    It worked (or, it seemed to work).
    In IDM, i got the following error :
    *Error detected: [Adding account to hosts and creating quotas]&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;Default shell for netpasswd is /usr/alt/uadm2/bin/nologin. This can be changed later.&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;Default shell for sui-dev is /usr/alt/uadm2/bin/nologin. This can be changed later.&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;Default home path for sui-dev is /home. This can be changed later.Default shell for ssl3 is /usr/alt/uadm2/bin/nologin. This can be changed later.&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;Default shell for sui-test is /usr/alt/uadm2/bin/nologin. This can be changed later.&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;Default home path for sui-test is /home. This can be changed later.[Adding user to groups]&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;[Creating home directory]&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;DUMMY - ssh -2 -l root sui-dev "/usr/alt/uadm2/libexec/mkhome sui-dev /users1/u1/mjerome 44444 500 550 mjerome"&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;DUMMY - ssh -2 -l root sui-test "/usr/alt/uadm2/libexec/mkhome sui-test /users1/u1/mjerome 44444 500 550 mjerome"&amp;amp;amp;amp;#xD;&amp;amp;amp;amp;#xA;[all done].*
    Result Code = 120.
    Error
    *com.waveset.util.WavesetException: An error occurred adding user 'mjerome' to resource 'Unix Administration'. com.waveset.util.WavesetException: Error detected: . com.waveset.util.WavesetException: Error detected: [Adding account to hosts and creating quotas]&#xD;&#xA;Default shell for netpasswd is /usr/alt/uadm2/bin/nologin. This can be changed later.&#xD;&#xA;Default shell for sui-dev is /usr/alt/uadm2/bin/nologin. This can be changed later.&#xD;&#xA;Default home path for sui-dev is /home. This can be changed later.Default shell for ssl3 is /usr/alt/uadm2/bin/nologin. This can be changed later.&#xD;&#xA;Default shell for sui-test is /usr/alt/uadm2/bin/nologin. This can be changed later.&#xD;&#xA;Default home path for sui-test is /home. This can be changed later.[Adding user to groups]&#xD;&#xA;[Creating home directory]&#xD;&#xA;DUMMY - ssh -2 -l root sui-dev "/usr/alt/uadm2/libexec/mkhome sui-dev /users1/u1/mjerome 44444 500 550 mjerome"&#xD;&#xA;DUMMY - ssh -2 -l root sui-test "/usr/alt/uadm2/libexec/mkhome sui-test /users1/u1/mjerome 44444 500 550 mjerome"&#xD;&#xA;[all done]. com.waveset.util.WavesetException: Result Code = 120.*
    From what is written there, I could see that the user was INDEED created. (Just to be sure, I checked my Unix machine. And, yes, the user was created)
    However, I keep getting the above error in IDM.
    I can't figure out any explanation besides the fact that, perhaps, this is because I do not have a RESULT HANDLER script in place yet.
    Could this be it?

  • Shell Script Resource Adapter

    I am using version 7.0 and I'm trying to setup a resource using the Shell Script resource type. I am having issues with a few things:
    1. How do I let the system know there was an error in the shell script? No matter what exit code I use in the Actions I have configured for the resource, the system thinks everything was successful. Relatedly, how can I send back an error message - where can I view it?
    2. How do I send back multiple values for an attribute? When 'GetUser' is called, it is parsed by 'GetUser AttrParse', I haven't been able to successfully send back mutiple values for an attribute. I have tried semicolon separating the attributes so that I can comma separate the multi-values for an attribute. I have also tried pipe.
    3. When I setup a new resource with the shell script resource type, the 'Test Configuration' button calls a unix command that checks for a bunch of unix commands that have nothing to do with what I will be doing in my shell script. Is there a way to change the test?

    I found a way to send back multiple values for an attribute. Instead of using the collectCsvHeader and collectCsvLines AttrParse tokens as the resource reference guide says, I use str and skip tokens to parse the line. These tokens take delimiters and terminators for the line which allows me to send back multiple values for an attribute.
    Line being parsed looks like this:
    TEST USER, ,MN,People; /home/simtestusr; /bin/sh; 8888888888; simtestusr; 888; group1, group2; host1, host2, host2; ;
    <AttrParse name='UnixShellScript GetUser AttrParse' >
    <str name='gecos' trim='true' term=';'/>
    <skip len='1'/>
    <str name='homedir' trim='true' term=';'/>
    <skip len='1'/>
    <str name='shell' trim='true' term=';'/>
    <skip len='1'/>
    <str name='accountId' trim='true' term=';'/>
    <skip len='1'/>
    <str name='uid' trim='true' term=';'/>
    <skip len='1'/>
    <str name='uidnumber' trim='true' term=';'/>
    <skip len='1'/>
    <str name='groups' multi='true' delim=',' trim='true' term=';'/>
    <skip len='1'/>
    <str name='hostnames' multi='true' delim=',' trim='true' term=';'/>
    <skipToEol/>
    <MemberObjectGroups>
    <ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>
    </MemberObjectGroups>
    </AttrParse>
    Also, SUN is telling me that the exit code problem (#1) may be fixed in sp2 for 7.0, I'm waiting to find out when it will be released.
    I still don't have an answer for #3.

  • Shell Script Resource-Timeout error

    Hi!!
    I have an issue with the Shell Script Resource, the problem is as follows:
    When I created a user in this resource and appears a error message:
    com.waveset.util.WavesetException: An error occurred adding user 'user01' to resource 'Shell Script'. com.waveset.util.WavesetException: Script failed waiting for "_,)#+(:" in response "" com.waveset.util.WavesetException: Script processor timed out with nothing to read and the following unprocessed text: "".
    I added the timeout property = 300 000 in my shell script is as follows:
    <ResTypeAction restype='Shell Script' timeout='300000'>
    but it doesn't work.
    I had the IDM 8 with the patch 4 but the problem beging when I did upgrade to patch 4 to 6.
    Does anyone knows what could be the problem.
    Thanks in advance!

    Hello!
    That isn't the problem the test connection works fine but when I try provisioning a user the shell script execute some instructions, in the shell script I need to set the timeout property in order to give more time to finish execute the instructions before the script execute the following command.
    I tested the timeout property in the shell script and work to fine for IDM 8 patch 4 I upgrade to patch 10 and stopped to work.
    Does anyone knows What could be the rigth way to set the timeout property in a resource action for shell script resource?
    Thanks...

  • Configuring Shell Script Resource

    I am trying to configure a Shell Script Resource on my IDM Instance (8.1)
    So far, I only wish to "Test the Configuration", just to make sure that the IDM is able to CONNECT successfully to the Unix Machine, before I proceed to configure the Resource Handlers and Scripts.
    Whenever I press the "*Test Configuration*" button, I keep getting this error :
    Test connection failed for resource(s):
    java.lang.IllegalStateException: Error attempting to decrypt: Input length not multiple of 8 bytes
    I have searched everywhere online (even Google), but can't find a solution, or even a REASON for this problem (((

    reenter the password on Resource Parameters page and save it. Test the connection. If error still there post the stack trace from app server log here.

  • How to call shell scripts

    Hi,
    Please let me know how to call shell scripts from WDA
    Thanks
    Bala Duvvuri

    Hi Bala
    You can not call any client side funcitons using Web Dynpro ABAP, it is possible in BSP using JavaScript.
    You can use Suspend and Resume Plugs to navigate to a BSP page and perform the shell script and return to WDA using Resume Plug.
    http://help.sap.com/saphelp_nw04s/helpdata/en/45/19bf8c16f25d7ae10000000a11466f/frameset.htm
    Now, you can use JavaScript to execute shell script:
    http://www.itjungle.com/mpo/mpo052302-story01.html
    Abhi

  • Shell Scripting Resources && Conditional

    Hiya folks.
    I'm looking for a great shell scripting site. Or a book. The Apple Mac Dev Centre is ... well she ain't workin for me.
    For instance, I'm looking for some leadership on a conditional, which those docs won't show me:
    troubleshooting=false
    *if [$troubleshooting==1]; then*
    * echo $troubleshooting*
    * echo $nameStart*
    * echo $myDate*
    * echo $newFName*
    * echo $mSource*
    * echo $mTarget*
    fi
    How do I trip this conditional?
    Cheers

    How do you set a boolean?
    Everything in a shell variable is a string. Some of those strings may look like numbers, but as far as the variable is concerned they are strings. There are no boolean variables. It is all in how you interpret the strings in your variable.
    I'll have to check up on the syntax for bash.
    You could read, reread, read and read "man bash". But I know it is not easy to actually figure out how to use the stuff the man page tells you, or even what they really mean when they use various terms. A book with examples helps, but there is magic hidden in the man page that sometimes takes ages and heavy use of shell scripting to figure out, and I've found that no one book will clearly explain every trick that can be done with shell scripts.
    I prefer to have spaces in there, but not around parens of any kind. I wish languages would be the same that way. Heh.
    And I like to have spaces around equal signs in assignments, but Bourne based shell scripts have their own rules. That is just the way it is.
    The syntax for the 'if' command is
    if list; then list; [ elif list; then list; ] ... [ else list; ] fi
    where "A list is a sequence of one or more pipelines separated by one of the operators ...". "A pipeline is a sequence of one or more commands separated by the character |".
    In the original Bourne shell (which ran in 64kilobytes of memory for code, data, and stack space) all expressions were handed by an external program 'test'. So your 'if' statement would have originally been
    if test $troubleshooting = 1; then
    fi
    Someone figured out that Unix filenames do not care what characters make up their name, so a hardlink was created between /bin/test and /bin/[
    ls -li /bin/test /bin/[
    57880389 -r-xr-xr-x 2 root wheel 46720 Jun 17 2009 /bin/[
    57880389 -r-xr-xr-x 2 root wheel 46720 Jun 17 2009 /bin/test
    You will notice that 57880389 (the file's inode) is identical for both 'test' and '['.
    So when you wrote
    if [$troubleshooting==1]; then
    the shell first processed the line and performed variable substitution, so the 'if' line converts to
    if [false==1]; then
    now the shell processes the 'list' of pipelines/commands following the 'if' statement. So a command is the first white space separate token, which is "[false==1]", so the shell looked in all the PATH directories looking for a file with the name "[false==1]" and did not find anything.
    However, if you white space separate the command in the 'list' from its arguments, then the shell can figure out what the first command is, invoke that command, and pass its arguments to the command.
    Now shells have more than 64kilobytes of memory to work with, and so the [[ ... ]] syntax was invented as a way to indicate that the expression was to use the shell built-in evaluation code. And I think bash eventually decided that it would do the /bin/[ program code evaluation as a built-in as well.
    But since you can also say
    if myprogram --opt --opt arg arg arg; then
    fi
    the shell must still be able to tell the difference between [ or [[ as expression evaluation operators, and a legal file with the name /home/me/bin/[myprogram, or $HOME/bin/[[myprogram, so it cannot assume that [ or [[ always start an expression evaluation.

  • How will execute shell scripts from AR91

    hallo, please help me to find where I can configure the execution mode for scripts called als run-Script in acroread.
    Following scenario: a pdf file (see attachement testpdf.pdf), generate from pdflatex (see testpdf.tex.txt) calls a bash script beispiel.sh (see attachement beispiel.sh.txt). Dependend from situation opens an editor window or an xterm. Under GNOME can we not open the xterm, there start only editor windows - gvim/emacs/kwrite, but not well defined. With acroread7 opens a xterm after menu dialogs. How can i configure an defined behaviour ?
    Thanx for any help
    Regards, Matthias

    Hi Matthias,
    To achieve this you can try to change the default "Open With" settings of .sh files to "xterm" as highlighted in the snapshot below
    This will enable to execute any shell script in xterm.
    Let us know if this helps.
    Thanks,
    Vaibhav

  • How to call shell script from a pl/sql procedure

    Hi all,
    I am little bit new to plsql programming, i have a small problem as follows
    I have to call a shell script from a pl/sql procedure ..
    Please suggest me some methods in oracle 10g, which i could make use of to achieve my goal. also please tell me what are the constraints for those methods if any.
    I already came across dbms_scheduler, but i have got a problem and its nor executing properly its exiting giving 255 error or saying that permission problem, but i have already given full access to my shell scripts.
    Thanks in advance
    Best Regards
    Satya

    Hi,
    Read this thread, perhaps is there your response :
    Host...
    Nicolas.

  • SAP XI: How To Write Shell Script And use it in File Adapter On XI Server

    Hi,
    I want to split file at sender side in XI using Shell Script and then after i want to do
    Mapping.
    Can anyone tell me what exactly it means "write a script in UNIX shell on XI SERVER"?
    Regards,
    Akshay.

    Hi,
    You can execute a Unix script running in the XI server from the File communication channel. Ie. if you want to do something which was not part of XI adapter configuation , then you can make use of external unix script and you can execute those from the XI.
    For this, write a unix script and place in the XI OS level provided that path is accessible from PI Channel.
    E.g
    So u can use this in either Sender Channel to modify the data before it reaches into the Integration Server or in Receiver channel it is generally used to transfer the files into different location via Secure FTP
    SAP help: http://help.sap.com/saphelp_nw2004s/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm
    Blog:/people/sameer.shadab/blog/2005/09/21/executing-unix-shell-script-using-operating-system-command-in-xi
    XI  can be in any OS.
    Hope this helps,
    Rgds,
    Moorthy

  • How to run shell script using External Process in Process Flow?

    Hi,
    We can run external process using Process flow.
    I would like to run shell script as external process in Process flow.
    Could any one please explain it?
    Thanks and regards
    Gowtham Sen.

    HI,
    As you said I tried this case. I got the following error. The script is running successfully while I tested at unix command prompt.
    The error is as follows..
    tarting Execution PFPS_SMPL_RUNSHELL
    Starting Task PFPS_SMPL_RUNSHELL
    Starting Task PFPS_SMPL_RUNSHELL:EXTERNALPROCESS
    /SOURCE_FILES/CollectFiles.sh: line 1: ls: command not found
    /SOURCE_FILES/CollectFiles.sh: line 1: wc: command not found
    /SOURCE_FILES/CollectFiles.sh: line 1: ls: command not found
    Completing Task PFPS_SMPL_RUNSHELL:EXTERNALPROCESS
    Starting Task PFPS_SMPL_RUNSHELL:EXTERNALPROCESS_1
    SQL*Plus: Release 10.1.0.2.0 - Production on Fri Sep 29 22:57:39 2006
    Copyright (c) 1982, 2004, Oracle. All rights reserved.
    ERROR:
    ORA-12545: Connect failed because target host or object does not exist
    Enter user-name: SP2-0306: Invalid option.
    Usage: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
    where <logon> ::= <username>[<password>][@<connect_identifier>] | /
    Enter user-name: SP2-0306: Invalid option.
    Usage: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
    where <logon> ::= <username>[<password>][@<connect_identifier>] | /
    SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
    Completing Task PFPS_SMPL_RUNSHELL:EXTERNALPROCESS_1
    Completing Task PFPS_SMPL_RUNSHELL
    Completing Execution PFPS_SMPL_RUNSHELL
    My scenario is---
    I am trying to return a file name from one shell script. I created a external process for that. After completion of this process, I am running another script which takes that file name and trying to create a external table. The both scripts are runnning successfully. But while I am trying to run using process flow, its not coming.
    And I am not getting the way to catch the output of external process and pass it as parameter as another external process.
    Any suggestions are welcome.
    Thanks and regards
    Gowtham Sen.

  • How to flag shell script if there is a exception in java program

    Hi all,
    can someone let me know if it possible to flag the calling shell script that there is a exception in java program ???
    Thanks
    Chat

    have a question
    In the shell script if I read for ret_stat=$? , will it give the value of 33 if exception occurs ?

  • How to create shell script on solaris "TOP" command

    Hi All,
    i need to write a shell script on unix top command.
    Requirement:
    In top command grep the more than 25% CPU utilization f60webmx process and that f60webmx process time stamp is more than 3HR's and also needs to grep the load average information in top command.
    Please help me some one.

    i need to write a shell script on unix top command.You have our permission to begin to do that.
    These forums are NOT for doing your work for you. They are here to provide assistance for YOUR work.
    I suggest you go get paper and pencil and write down all the steps you think you need to take to accomplish that. Write it down as if you were going to do that manually at the command prompt. Then put it all into a text file and save it with a file name of your script.
    When you have that "script", you can run it and examine whether it succeeds or whether it has errors. Work at it for a while and fix whatever errors might happen.
    When you are really, really stuck at it, you can paste your script into a reply of this thread and maybe someone will respond with suggestions for improvement.

  • How can we perform an External Action in the User Creation Workflow

    Hi,
    How can External Actions be performed in a Workflow while User Creation i.e., what all External Actions can be don, how to do it ?
    Can I get a Guide for the same ?
    Regards

    Hi,
    I am guessing you are talking about OIM.Modifying Action classes or workflow should be last options so just give more thoughts on your business requirement. There is no official guide available for Modifying action classes as Oracle does not recommend it.Modifying action class is similar to any web application modification and it will depends on your knowledge and skills of struts and OIM so if you are well verse with what you can go ahead and modifying actions classes.
    Regards
    Nitesh

  • Help Pls: how to assign a user form to a non active sync resource adapter

    I need to implement a non active sync resource adapter, such as oracle database or RACF. When a user is assigned a resource by IdM, an account is created on that resource. I want to transform some attributes during the creation, such as pre-padding the accountId with a letter and zeros. My questions are:
    1) I think attribute transformation should be accomplished by user form. is it correct? How do I assign the user form to the non active sync resource?
    2) What workflow/userform should I change to accomplish that?
    Thanks a lot.

    A cleaner option would be to
    1. Create a custom form, which could be derived from the Tabbed User Form.
    2. Create a delegated admin, with account administrator capabilities at the minimum, and required controlled organization, and assign the above form to this delegated admin -- this is on the same page.
    3. Use this form to create IDs on the specific resource.
    Now in this custom form you could have the logic on how to create the ID in the specific resource. In fact you could have different logic for different resource. Check the tech deployment guide for the exact syntax, but the field might be:
    account[Res_Name].identity
    Note that this setting would override the 'Identity Template' setting as defined in the RA configuration.
    And BTW, it would really help if you readup the 'Forms' section in the guide.
    Regards,
    Suveer Chainani

Maybe you are looking for

  • Is it Possible to display the output of the ALV list as POP-UP

    Hi Experts,                  Is it Possible to display the output of the ALV list as POP-UP, if yes then provide some ideas on it. thanking in advance, Samad.

  • Safari is frequently crashing

    As of today I am using Safari 6.2.2. Not sure what previous version was, maybe 6.1. I am using it on iMac desktop with Mtn Lion 10.8.5. For the last 2 or 3 weeks, Safari was crashing almost on a daily basis. I don't know what the update to 6.2.2 is i

  • BAPI for Scheduling Planned Order

    Hi, Please tell me if there are any BAPIs for Scheduling a Pllaned Order and for Deleting a Planned Oredr. Thankes & Regards, Rahul

  • Email with Text File Attachement as Source

    Hi All,        One of my interfaces needs to listen to incoming mails with an text file attachements.I wish to know how we can convert the text file contents into XML to further process it on the reciever side.

  • CC&B v2.2.0 4 FA Integration

    Attempting to configure CC&B v2.2.0 4 for FA Integration as detailed in on-line help: - Administation -- Definining Field Order Options --- External System Integration ---- Setting Up the System to Enable FA Integration As documented, this integratio