Topic
  • 8 replies
  • Latest Post - ‏2015-04-24T11:50:25Z by TomSarasin
SaqibFarooq
SaqibFarooq
26 Posts

Pinned topic Maximo Integration with External Application

‏2013-10-01T11:32:52Z |

Hello,

I am using IBM SmartCloud Control Desk 7.5.1 on windows 2008.

I want to call a webservice from SCCD whenever status is changed of a SR and that webservice is basically of a sms server who is sending sms.

Its syntax is url,header content and a body of xml contents.

But what I have seen in after exporting a xml file it does not match with the file that is required to send sms.

Can any one tell how to customize the xml file which is exported whenever status is changed.

Best Regards,

Saqib Farooq

  • TomSarasin
    TomSarasin
    19 Posts

    Re: Maximo Integration with External Application

    ‏2013-10-02T15:16:53Z  

    I assume you are using a Publish Channel to get the event-based message to send on an update of an SR.  To change the message format before it is sent through the end point requires that you implement a java user exit (registered on the channel) or XSL (again registered on the channel).  This link will take you to more information on integration that may find helpful.  https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20Maximo%20Asset%20Management/page/Integration%20Framework

  • SaqibFarooq
    SaqibFarooq
    26 Posts

    Re: Maximo Integration with External Application

    ‏2013-10-03T06:58:21Z  

    I assume you are using a Publish Channel to get the event-based message to send on an update of an SR.  To change the message format before it is sent through the end point requires that you implement a java user exit (registered on the channel) or XSL (again registered on the channel).  This link will take you to more information on integration that may find helpful.  https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20Maximo%20Asset%20Management/page/Integration%20Framework

    Hello Sarasin,

    yes you are right I'm using Publish Channel.

    I have found what is my issue. My issue is I am facing an issue how to configure end point.

    As my end point is a webservice and we can call it from my http client and it sends sms, its format is its header contains (Content-Type, Content-length adn SOAPAction) and then xml format body is

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
     <soap:Body>
       <SendSMS xmlns="http://tempuri.org/">
         <Src_nbr> An assigned Number</Src_nbr>
         <Password>123</Password>
         <Dst_nbr>Any-Number</Dst_nbr>
         <Mask>Any</Mask>
         <Message>Hello</Message>
         <TransactionID>8</TransactionID>
       </SendSMS>
     </soap:Body>
    </soap:Envelope>

    Now how can I configure my end point by using default handler of SCCD to complete my task?

    I hope now you understand what is my requirement.

    Your response will be appreciated.

    Thank you.

  • TomSarasin
    TomSarasin
    19 Posts

    Re: Maximo Integration with External Application

    ‏2013-10-03T19:35:10Z  

    Hello Sarasin,

    yes you are right I'm using Publish Channel.

    I have found what is my issue. My issue is I am facing an issue how to configure end point.

    As my end point is a webservice and we can call it from my http client and it sends sms, its format is its header contains (Content-Type, Content-length adn SOAPAction) and then xml format body is

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
     <soap:Body>
       <SendSMS xmlns="http://tempuri.org/">
         <Src_nbr> An assigned Number</Src_nbr>
         <Password>123</Password>
         <Dst_nbr>Any-Number</Dst_nbr>
         <Mask>Any</Mask>
         <Message>Hello</Message>
         <TransactionID>8</TransactionID>
       </SendSMS>
     </soap:Body>
    </soap:Envelope>

    Now how can I configure my end point by using default handler of SCCD to complete my task?

    I hope now you understand what is my requirement.

    Your response will be appreciated.

    Thank you.

    So your publish channel has an object structure that is based on the SR object (possiby MXSR object structure).  When the event fires the MIF will build an SR XML message and this will flow through your publish channel.  In the publish channel you can provide Java code or XSL to conver that XML to the XML structure you displayed in the prior entry <SendSMS>.  The MIF Soap endpoint will deliver the message to the web service with the appropriate soap envelope.

    Do you have code to convert the XML?

    What End point/handler are you using ?  can you provide the parameters you have configured in the end Point?

     

    thanks

    tom

     

  • SaqibFarooq
    SaqibFarooq
    26 Posts

    Re: Maximo Integration with External Application

    ‏2013-10-04T06:24:46Z  

    So your publish channel has an object structure that is based on the SR object (possiby MXSR object structure).  When the event fires the MIF will build an SR XML message and this will flow through your publish channel.  In the publish channel you can provide Java code or XSL to conver that XML to the XML structure you displayed in the prior entry <SendSMS>.  The MIF Soap endpoint will deliver the message to the web service with the appropriate soap envelope.

    Do you have code to convert the XML?

    What End point/handler are you using ?  can you provide the parameters you have configured in the end Point?

     

    thanks

    tom

     

    No I do not have code to convert XML, if you have please provide it.

    I am using HTTP Handler and I have attached a snapshot from where you can see the end point configuration.

    Another thing is you mentioned in your post about the MIF Soap end point, I have checked it I have not found it in the out-of-box list of end points.

    Thanks

    Attachments

    Updated on 2013-10-04T06:25:09Z at 2013-10-04T06:25:09Z by SaqibFarooq
  • TomSarasin
    TomSarasin
    19 Posts

    Re: Maximo Integration with External Application

    ‏2013-10-04T10:51:29Z  

    Any time you are calling an external web service, you will need to transform the default Maximo XML (based on your object structure) to the format required by the external service.  Our framework provides a placeholder for a java class or XSL to do this type of transformation.  This is something the integration implementer has to provide and this would vary based on the object structure you are using and the service you are calling.  I'm attaching a zip of some sample code that does different types of processing logic in the exit classes of either a channel or service. You may find this helpful.

    Attachments

  • dhohnstein
    dhohnstein
    25 Posts

    Re: Maximo Integration with External Application

    ‏2013-10-11T15:23:17Z  

    No I do not have code to convert XML, if you have please provide it.

    I am using HTTP Handler and I have attached a snapshot from where you can see the end point configuration.

    Another thing is you mentioned in your post about the MIF Soap end point, I have checked it I have not found it in the out-of-box list of end points.

    Thanks

    Just a thought.  The end point handler you have configured in that image is using the HTTP handler.  Which means you'll need to wrap the outbound XML with the necessary SOAP envelope tags.  I'm still not sure that would work though.  Your best bet is to probably create a new end point using the WEBSERVICE handler.  This will cause the XML that is emitted from the XSL or UserExit to be wrapped in the necessary SOAP envelope and POSTed to the URL.  We've been working on sending documents to PeopleSoft using web services and found that the SERVICENAME and SOAPACTION (especially) were critical in establishing communication between the two systems and sending the data over.

    Look online for some simple XSLT tutorials.  It's very simple, at least as far as the complexity you need to translate the outbound XML.  And the nice thing about using XSLT is that you can reference the file directly in the Publish Channel and it doesn't require a rebuild/redeployment of the EAR.  Changes to the XSL can be made and implemented immediately between tests.

    Good luck.  Our biggest challenge now it trying to figure out how to capture the return SOAP messages in Message Tracking when errors occur.  If you figure that out please let me know.

  • Dan Nill
    Dan Nill
    1 Post

    Re: Maximo Integration with External Application

    ‏2015-04-24T03:09:26Z  

    Any time you are calling an external web service, you will need to transform the default Maximo XML (based on your object structure) to the format required by the external service.  Our framework provides a placeholder for a java class or XSL to do this type of transformation.  This is something the integration implementer has to provide and this would vary based on the object structure you are using and the service you are calling.  I'm attaching a zip of some sample code that does different types of processing logic in the exit classes of either a channel or service. You may find this helpful.

    Quick question, how do you know what class to extend / impliment when creating  these exit classes? 

    Sorry to post in a 2 year old thread but googling for exit class samples lead me here.

     

  • TomSarasin
    TomSarasin
    19 Posts

    Re: Maximo Integration with External Application

    ‏2015-04-24T11:50:25Z  
    • Dan Nill
    • ‏2015-04-24T03:09:26Z

    Quick question, how do you know what class to extend / impliment when creating  these exit classes? 

    Sorry to post in a 2 year old thread but googling for exit class samples lead me here.

     

    if you download the zip you will find samples - user exits on publish channel or enterprise service extend UserExit - you will see this in the examples (MaxPO* and MoutPO*)