ABC of UCCX XML scripting

Hello guys,
I have been working in support for a while now so I've come accross a number of XML scripts. What I've  found was that  modifying   them was not extreemly hard because most of the work was already done, but trying to build it from scratch is very hard for me unless I just want to copy what some else has already done and just add a few modification to it and pretend its my work.
I would like a cituation where I'm given a scenario and I am able to single-handedly create a script to meet the task. Can anyone advise me on what to read, which forumes to visit etc please?
For instance, the command  below is a mistry to me even though I can see what the intension is. I need to understand the reason behind every forward slash, backslash etc.    
"/descendant::XMLDataResponse/child::XMLDataResult/child::PhoneNumber") 
The above sytax was taken from the link below.
: https://supportforums.cisco.com/thread/2108527

hello Guys,
I just have one more question. So basically I have been reading the link you showed me and I've really loved it. So I went back to one of the old scripts I've worked on the past and I thought I'd actually attempt to fully understand it.  I saw an Xpath syntax in the uccx script that looked really odd to me.   just want to share it you guys maybe you will be able to shed some light on it.
Firstly, here is the XLM doc Contents:
==============================
<?xml version="1.0" encoding="UTF-8"?><
Emergencys>
<Emergency1>falseEmergency1>
Emergencys>
==================================
The original xpath syntax that was used to grab the value of the Emergency element is as listed below.
==============================================================================
"/descendant::Emergencys/child::" + EmergencyTag
===============================================
I wrote an xpath syntax that I think could probably grab the value of the emergency element too:  I have pasted it below
==========================================================================================
/descendant::Emergenys/child::*/text()
==========================================================
Guys, the thing I dont understand about the syntax below is Why was there any need to add  ' + Emergency Tag'   at the end of the Xpath syntax ?
"/descendant::Emergencys/child::" + EmergencyTag

Similar Messages

  • Building & deploying cubes in OWB (can we do these by using XML scripts)

    Hi Guys,
    Building & deploying cubes in OWB (can we do these by using XML scripts).
    Is it possible in OWB?
    Please help me ASAP..

    Hi, i managed to work out a solution with my web host.
    The problem was that they are using Apache to process all incoming http requests then only forwarding specific requests to tomcat.
    So by entering the port number after the domain ie www.mydomain.com:8080/ the http request went directly to tomcat and was processed correctly.
    Furthermore my web host configured apache so all requests go straight to tomcat so now the port number isn't even required and all is well with the world again!
    except... navigating to different pages in my site does not update the url correctly.
    For example the site loads index.jsp when entering www.mydomain.com/ but when navigating to another page (i.e. photo.jsp) the photo.jsp page loads ok but the url is updated to www.mydomain.com/faces/index.jsp which is not correct. When refreshing the photo.jsp page it reloads the index.jsp page because of the incorrect url.
    any ideas...

  • How to add macaddress in NAC profiler with xml script

    Hi,
    how do we check

    how do we add the mac address in the XML script
    the requirement is  : Printers mac address and the ip address should match to get profiled under printer.
    i have tried  with the below script but it says invalid tag
    kindly help me in this
    thanks in advance.

  • Xml script

    Hi all
    would someone beable to help with xml external file script
    for creating an mp3 player. I found some tutorials on how to do so
    much but am nowlost on how to do the remaining buttons. So far I've
    created a play/pause toggle button and a next button. What I'm
    tring to do now is finish off the conrols by adding the back, stop,
    play and loop buttons to my controller.
    within the xml document, mp3player.as is all the script,
    exlplaining how it loads the tracks etc,.
    would anyone beable to help/show me the code for the xml
    script as I'm not very good with xml?
    heres the example page of what I'm trying to do, and there is
    also a link so you can download the source files.
    http://www.paragon360.com/example01/example01.html
    any help would greatfully appreciated
    cheers
    noddy

    There are two tutorials for an MP3 player at
    www.gotoAndLearn.com that you
    might find helpful.
    "noddy man" <[email protected]> wrote in
    message
    news:enm050$aot$[email protected]..
    > Hi all
    >
    > would someone beable to help with xml external file
    script for creating an
    > mp3
    > player. I found some tutorials on how to do so much but
    am nowlost on how
    > to
    > do the remaining buttons. So far I've created a
    play/pause toggle button
    > and a
    > next button. What I'm tring to do now is finish off the
    conrols by adding
    > the
    > back, stop, play and loop buttons to my controller.
    >
    > within the xml document, mp3player.as is all the script,
    exlplaining how
    > it
    > loads the tracks etc,.
    > would anyone beable to help/show me the code for the xml
    script as I'm not
    > very good with xml?
    >
    > heres the example page of what I'm trying to do, and
    there is also a link
    > so
    > you can download the source files.
    >
    >
    http://www.paragon360.com/example01/example01.html
    >
    > any help would greatfully appreciated
    >
    > cheers
    > noddy
    >

  • XML script to copy data from one repository to another

    Hi all,
    a customer wants an xml script that copy all data from the repository A to the repository B. I think that this is not possible to do this with an xml script, because the script tags (add-item, update-item, query-item, import-item, load-item, remove-item) seems don't give this feature. The same for RQL, that doesn't give you a command like "SELECT INTO".
    But what i'm asking is: Is there a way to run the copy using the repository script tags?
    Thanks.
    Edited by: user10980894 on 11-lug-2011 3.33

    Please elaborate , If what you need is to copy data from between two dissimliar repositories then it is not possible , but if a and b are having the same structure then you might be able to do that using the following and tweaking the generated xml
    Both the repositories should have the same structure and name , please follow the below commands and you will be able to export the data in below format , see if this is all you want
    export using
    bin/startSQLReository -m module -export all outputfile.xml -repository repositoryA
    Change the reference to repositoryA in the file
    import using
    bin/startSQLRepository - m module - import outputfile.xml -repository repositoryB
    <add-item item-descriptor="priceList" id="plist4350003">
    <set-property name="description"><![CDATA[Group of Thirteen States which is generally called as L13 in AT&T]]></set-property>
    <set-property name="displayName"><![CDATA[L13]]></set-property>
    <!-- export is false <set-property name="version"><![CDATA[7]]></set-property> -->
    <set-property name="basePriceList"><![CDATA[listPrices]]></set-property>
    <set-property name="creationDate"><![CDATA[9/3/2010 07:38:49]]></set-property>
    <set-property name="lastModifiedDate"><![CDATA[9/10/2010 17:02:09]]></set-property>
    <set-property name="itemAcl"><![CDATA[Admin$role$administrators-group:list,write,write_owner,write_acl,read_owner,destroy,read_acl,read;Admin$role$everyone-group:list,read]]></set-property>
    </add-item>
    please refer to this section of ATG Repository guide for further info

  • Catalog manger "search and replace " using xml script

    Hi ,
    we have renamed 6 rpd columns names in rpd & alias is not removed yet .In catalog manager i can search and replace using string .But it takes lot time as they are stored in different reports , which are existing . I am trying to use xml script for replacing them.I got sample script from help file for single column . can anyone help for doing that for multiple strings.I will provide with my inputs .
    my inputs:
    <?xml version="1.0" encoding="utf-8"?>
    <actions>
    <action command="textReplace" oldValue="column 1 " newValue="column one" ignoreCase="true"/>
    <action command="textReplace" oldValue="column 2" newValue="column two" ignoreCase="true"/>
    <action command="textReplace" oldValue="column 3" newValue="column three" ignoreCase="true"/>
    </actions>
    please correct me .

    Given xml content looks okay but just in case check this oldValue="column 1 ", there is additional space at the end.
    I would suggest to extract Analysis report (.csv) using Catalog Manager and find out the list of reports based on those columns.
    This would help you learn with list of reports based on report owners, and then go for the fixing those reports.
    If you go by xml replace you never know the affected reports and you may not confirm until report owners come back to you with issues.
    This might take little bit time but your changes based on proper doc.
    Let me know updates, if helps mark
    Edited by: Srini VEERAVALLI on Feb 19, 2013 3:21 PM

  • UCCX Hot Script Update

                Can you update a script while it is running?   If you have to get in an change the script from Open to Closed because of the Time of Day, Day of Week needs updateing, any danger when uploading the revised script?  
    Peter Buswell

    Peter,
    You can add variables to your script as parameters that allow you to change the functionality of the script through the application that you create.  You can also act on external sources like Gergely stated. 
    We use both of those a lot in our scripts.  (Holiday check, manual open/closed, etc. all use external sources. XML/DB Query)  If you get creative you can make time of day checks based on parameters as well. 
    As Jonathan stated, you can update the script on the live system and the next trigger gets the changes.  It is highly recommened not to do that unless necessary. 

  • UCCX Callback script help

    Hi Guys,
    My first foray into IPCC based scripting and I've run into a few problems.
    Firstly, what I'm trying to do, is allow a user to press a button during during the queue process, which then allows them to manually input their call back number.
    Once an agent becomes available, the system calls the agent and the callback number and connects them..
    I've attached the script that I'm working with, and the log file.
    What I'm seeing is, I can get one call queued, and it works fine, the agent comes online, the system calls the agent prompts them to initiate the callback (press any key) and then connects them to the user.
    When I have multiple callbacks in the queue I get the "Narky Lady" informing me we have system problems. This happens to all the queued callbacks.
    The second part is I'm getting "Event queue time exceeded" and the call is being dropped out of the queue after the callback has been queued.
    I'm running CUCM 7.0.1.11000-2 & UCCX 7.0(1)_Build168
    Any help would be appreciated, or if someone could point me to a working example?
    Thanks

    There are several items that could be causing the issue. I'm assuming that the Place Call step is calling a route point and ultimately a script that is placing the call in queue.
    How many sessions do you have available for this second queue application?
    Prior to your Place Call step, you need to dequeue the call and terminate the original call leg.
    Remove the Set Contact Info step from the Wait For Agent section.
    I'm not sure why you have the Play Prompt after the call has been connected. I would play the caller in the Get Digit String under the Wait For Agent section.
    Those changes should get this to work as long as my original assumptions are correct.
    You may want to consider some additional factors in your next revision of this script:
    -What if an agent hangs up on the queue callback request? You can use the On Exception Goto and catch the ContactInactiveException to work around this issue.
    -You will need to handle the busy, invalid, and unsuccessful nodes in the Call Redirect step. I would suggest creating a loop and having it requeue the call again up to 3 times.
    -When you get the callback number, make sure to get 7 or 10 digits depending on your requirements. You amy also need to prepend a 1 to those numbers outside of your local area codes.
    -This script may be strange for agents to handle because they don't have the name of the caller. You could have the caller record their name and play it in the callback loop with the phone number.

  • UCCX Holiday Scripting Issue

    Hello All,
    I have a script, which does a subflow to the HolidayCheck.aef script to check for holidays. That part is working fine. However, how do i get the HolidayCheck.aef script to also honor the times that is in my Holiday.xml file. For instance, I want today to be a holiday, but I dont want the holiday to start until 1330. Until then, I need the normal call routing up until 1330. I have attached the HolidayCheck.aef and the Holidays.xml document for your reference. Any assistance is greatly appreciated.

    I'm sure there are real programmers on the forum who would do this differently, but this is how I would approach it.
    What you might try is changing the open and closed time values in your XML file from 0000 to "12:00 AM" and from 1330 to "1:30 PM". Be sure to enclose your values in quotes. Then, in your script create 2 new Date variables, dOpenTime and dCloseTime. Create 2 string variables, sOpenTime and sCloseTime. Have 2 Get XML Document Data steps to read the open and close times from your XML file and store those in sOpenTime and sCloseTime, respectively. Have a set step to concatenate sHolidayDate with sOpenTime, Set dOpenTime = sHolidayDate + " " + sOpenTime and a set step to concatenate sHolidayDate with sCloseTime, Set dCloseTime = sHolidayDate + " " + sCloseTime. This will give you an open date/time and close date/time which you can use for comparison to the current date/time. In your If (sCurrentDate == sHolidayDate) true branch have another If statement, like If (dSystemDate >=  dCloseTime) Then .... Set bHolidayToday = true. If the current date/time is between the open/close times set your bHolidayToday to true. You can also do an If statement to see if the current time is between the open/close time like If (dSystemDate >= dOpenTime && dSystemDate < dCloseTime) Then ...
    I played with this on my IPIVR system and was able to make it work.
    This should give you a starting point to refine the steps to make this work for your environment.
    I hope this works for you.
    Bill

  • UCCX * Recording Script

    Team - I used to have a recording script that would collect prompt number like 345 and record a wavefile 345.wav.
    It workd in UCCX7 not in UCCX 8. Is there any path information I need to set correctly for this to work? Will defining a document variable wavfile
    doing a Recording step to save to wavfile
    and write wavfile document to say
    promptnumber + ".wav" work where promptnumber is the collected digits 345? It seems to fail on UCCX8. Thanks

    Unlike the Windows version where you can see the prompts in wfavvid, in
    version 8, they are uploaded to the Repository where they are stored.
    Windows release (7.01) versus Linux (Version 8)
    They then can be seen in the appadmin under the navigation: Cisco Unified
    CCX Administration.
    Then Applications\Prompt Management.
    NOTE:
    Manage prompts. Many applications make use of pre-recorded prompts, stored
    as .wav files, which are played back to callers to provide information and
    elicit caller response. You must upload these .wav files to the repository
    and make them available to the Unified CCX system.
    In the Version 8 UCCX, that location for the user prompts is not a path you
    will be able to access due to root passwords are needed.
    But, the path is Opt\Cisco\UCCX\Prompts\user
    Attached are the default scripts for UCCX 8 which can be found on the pc
    that has the Editor downloaded.
    C:\Program Files\wfavvid_802\Scripts\system\default
    Also, make sure you do not have Create file document step ..else you could be running into this bug :
    http://cdetsweb-prd.cisco.com/apps/dumpcr?identifier=CSCti89552&parentprogram=QDDTS
    Thnaks
    Ankita

  • Insert data into oracle table from XML script not working

    Hi,
    I wrote simple PL/SQL program to extract values from a XML file and disply all the employee names. But the first employee name repeating. Please can you tell me how to fix it.
    set serveroutput on size 2000;
    declare
    indoc VARCHAR2(2000);
    indomdoc dbms_xmldom.domdocument;
    innode dbms_xmldom.domnode;
    myParser dbms_xmlparser.Parser;
    l_nl dbms_xmldom.DOMNodeList;
    lv_value varchar2(30);
    l_n dbms_xmldom.DOMNode;
    begin
    indoc := '<emp> <name> Scott </name>
    <name> Tiger </name>
    </emp>';
    myParser := dbms_xmlparser.newParser;
    dbms_xmlparser.parseBuffer(myParser, indoc);
    indomdoc := dbms_xmlparser.getDocument(myParser);
    innode := dbms_xmldom.makeNode(indomdoc);
    l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(indomdoc),'/emp/name');
    dbms_output.put_line('Record count '||dbms_xmldom.getLength(l_nl));
    FOR cur_emp IN 0 .. dbms_xmldom.getLength(l_nl) - 1 LOOP
    l_n := dbms_xmldom.item(l_nl, cur_emp);
    lv_value := dbms_xslprocessor.valueOf(l_n,'//name/text()');
    dbms_output.put_line('Emp Name : '||lv_value);
    END LOOP;
    end;
    /

    Based on an earlier example of mine from {message:id=2826611}
    This works in 10.2.x.x for sure. I can't recall (didn't look up) whether in 10.1 it allowed for going straight from a CLOB to a DOMDocument via newDomDocument.
    declare
       indoc    VARCHAR2(2000);
       indomdoc dbms_xmldom.domdocument;
       l_nl     dbms_xmldom.DOMNodeList;
       lv_value VARCHAR2(30);
       l_n      dbms_xmldom.DOMNode;
       l_xmltype   XMLTYPE;
       l_index     PLS_INTEGER;
    begin
       indoc := '<emp> <name> Scott </name>
       <name> Tiger </name>
       </emp>';
       indomdoc := dbms_xmldom.newDomDocument(indoc);
       l_nl := dbms_xslprocessor.selectNodes(dbms_xmldom.makeNode(indomdoc),'/emp/name');
       dbms_output.put_line('Record count '||dbms_xmldom.getLength(l_nl));
       -- Method 1
       FOR cur_emp IN 0 .. dbms_xmldom.getLength(l_nl) - 1 LOOP
          l_n := dbms_xmldom.item(l_nl, cur_emp);
          lv_value := dbms_xmldom.getnodevalue(dbms_xmldom.getfirstchild(l_n));
          dbms_output.put_line('Emp Name : '||lv_value);
       END LOOP;
       dbms_xmldom.freeDocument(indomdoc);
       -- Method 2
       dbms_output.new_line;
       l_xmltype := XMLTYPE(indoc);
       l_index := 1;
       WHILE l_xmltype.Existsnode('/emp/name[' || To_Char(l_index) || ']') > 0
       LOOP
          lv_value := l_xmltype.extract('/emp/name[' || To_Char(l_index) || ']/text()').getStringVal();
          dbms_output.put_line('Emp Name : '||lv_value);
          l_index := l_index + 1;
       END LOOP;
    end;

  • UCCX 9 Script wait time`

    Is there a way in UCCX to let callers know that if the estimated wait time is more than 5 minutes or less than 5 minutes to prompt? I'm being asked that the caller only be told if their place in queue is less than 5 or more than 5 minutes; not exact times. I realize this could be frustrating to hear as a call if you've been on hold for 35 minutes to hear, "Your estimated wait time is greater than 5 minutes." But that's what I'm being asked....
    Thanks in advance!

    Yes you can, first, only play the prompt once when the caller first gets into the queue. Then dont play the estimated time after that.
    Ues the Get Reporting Statisic and put in on an INT.
    Then use an IF Statement for more or less than 5 minutes.
    Let me know if you need more help, I am out of the office right now, but can post a sample latter.

  • XML script for iTunes Podcast

    Hello,
    I keep getting the "Bad HTTP result code: 404" error message when I submit my podcast link to iTunes.  I am using Hostmonster for a FTP server and they claim they support byte range requests.  Anyone have any suggestions.

    OK, after some detective work/guesswork I located your feed, which is at
    http://singlemaltsoccer.com/iTunes_Podcasts/Podcasts/Single.Malt.Soccer.xml
    That's the URL you should be submitting to iTunes: however at the moment it won't work because you have a blank line at the start, which is not allowed in XML. The very first thing in your feed must be
    <?xml version="1.0" encoding="UTF-8"?>
    You also have the URL of your media file wrong: it should be
    http://singlemaltsoccer.com/music/20140814.Podcast.mp3
    Basically you've been putting in the FTP (uploading) path - you need to remove the 'ftp.' and 'public_html/' from any URLs.
    Your first category is 'Sports & Recreation' - you can't use an ampersand by itself as in XML it signifies the beginning of a code sequence which is never completed, and this will render the feed unreadable. You must replace it with the code
    &amp;
    You should choose a sub-category or the Store may choose one for you - the available ones are Amateur, COllege & High School, Outdoor, and Professional. You have chosen 'Arts' as your second category but this won't show in the Store and searching on it won't bring up your podcast (nor will  searching on the main category - only 'featured' podcasts show).
    Your 'itunes:image' tag should show http://singlemaltsoccer.com/iTunes_Podcasts/Icon/Single.Malt.Soccer.Icon.png ; however the image will get your feed rejected as it is only 632 x 640 px - it must be 1400 x 1400 and when you produce a new version make sure that it is smaller than 500kB or again it will be rejected (you would probably be better off making it a JPG as these are inherently smaller).
    Your 'link' tag should contain the URL of your website, not of the mp3 file. Your episode title is simply the date - it's up to you whether you think that's a good idea (the date shows in the Store and iTunes displays).
    I checked your media file and the server does appear to accept byte range requests.

  • XML script for port config

    Is there any way to create an XML template with a scope "port" that would allow you to configure switches with access and trunk ports .  Currently I have to deploy once for the access port configs and then deploy again with one for trunk / uplink. I thought about adding my trunk ports to my base config (scope "device"), but it seems that the cli lines containing "interface" are removed or not processed unless I use the xml template with scope "port".
    Thank you.                      

    Nope.

  • XML scripting problem

    Hi can anyone help me with this? I got a problem here can
    anyone help me to translate into actionscripting for me?
    I want to open a file base on the values i assign if t = 1, i
    wanna open 1.xml if i give t =2, i wanna open 2.xml and so on
    untill value 10. How do I write into an actionscript? Thanks in
    advance

    Its ok. I manage to solve it. xmlData.load("t" +
    ".xml").

Maybe you are looking for