Pages

Monday, November 3, 2014

Dreamforce 2014 Presentation - Improved Apex support for SOAP based web services

At Dreamforce this year I gave a breakout presentation on the WSDL2Apex component of the FuseIT SFDC Explorer. The core idea is to increase support for calling SOAP based web services by generating the required Apex classes from the WSDL.

Breakout Session Blurb

Join us as we review the capabilities of the existing WSDL-to-Apex code generation feature, and explain how we built a tool to provide expanded features using the Tooling API. The resulting tool has greater support for more WSDL features, generates test cases and the associated mocks to maximize code coverage, and optionally includes HttpRequest versions of the callouts.


Using the Tooling API to Generate Apex SOAP Web Service Clients

Offsite Session Video on Vidyard.



The demo's went well. I was caught out a bit with the resolution. I went in expecting 1280x720 and it got bumped up to 1920x1080. Hopefully the core parts scaled well enough to be seen. Note to self, have a magnifier tool handy for future demo's.

It was difficult to see the audience in the breakout room with 3 spot lights pointed at the stage - the cellphone camera isn't really showing how blinding it was. I could hear people were out there, but couldn't really see them. Some of the breakout rooms had this set up and some didn't, I'm not sure why.

These were minor things really, and I'm glad I was given the opportunity to present at Dreamforce. I got some great questions and feedback from the session. We are getting more followup queries at work now a couple of weeks after Dreamforce. With so much going on during the conference it seems to take awhile for people to filter back to work and follow up on sessions. Also, with so much going on, it was tempting to skip the sessions that were being recorded and attend other activities, such as labs and meeting with other attendees.

3 comments:

  1. H Daniel,

    Thank you so much for all the material and helps you have made available for us all.
    But, I am still stuck with a WSDL to Apex conversion. When I use FuseIT the conversion happens only if I have the use Salesforce WSDLto Apex checkbox unchecked.

    Also, the Apex code that I get out of it doesn't work as it makes me hit a parse issue when I try to execute the code. So, I began to manually try and flatten the file and that results in Apex Code generation issue.

    It will be a huge help if you can help me figure this issue out. Please share your contact details so that I can share the details with you.

    Thanks!
    Regards
    Kritika

    ReplyDelete
    Replies
    1. Hi Kritika,

      Are you using the online version of the FuseIT SFDC Explorer, or the windows executable?
      There is an ExplorerSupport email address that should be accessible via via the application. If you can include your WSDL I'll give it a go.

      Regards,
      Daniel

      Delete
  2. H Daniel,

    Firstly, thank you for this great tool, this does address most of the limitations with the Salesforce OOB WSDL-To-Apex feature,
    kudos to you and your team!

    I tried to use this tool with the Marketing Cloud WSDL - https://webservice.exacttarget.com/etframework.wsdl which has nested levels of inheritance.

    I noticed, the generated apex classes doesn't use inheritance but instead pulls in all the parent attributes as part of the specifc child class.
    Since the 'create' operation takes an APIObject(Core Parent object) as it's input I plugged in the inheritance wherever required, so i could use
    it with specific types, for intance - create 'DataExtension'.

    The issue is with the reponse element - i.e 'CreateResponse_element -> CreateResult[] -> APIObject', the server returns the specific types and it breaks
    since the API object doesn't have those attributes. I can solve this problem by creating specific methods for each request & response type but that
    would need a lot of change to the generated apex classes.

    I just wanted to check if i am missing something here, i was under the assumption that this tool does support nested inheritance and would work as is.

    Many Thanks!


    Regards,
    Savio Jose

    ReplyDelete