function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
AMIT KUMAR 73AMIT KUMAR 73 

Custom Web Service to return list of records in accounts object

Hi,

my requirement is to send all records (Work Order - custom object) to some third part app by exposing a custom WSDL file.
I developer the below code, which compiles fine in salesforce but gives an error while testing the same in SOAP UI tool.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
global class TestWOStatus{
    webservice static LIST<Work_Order__c> getWorkOrder(){
         LIST<Work_Order__c> wo = [SELECT ID,account__c,Product__c,Order_Type__c,Order_Status__c,Billing_Type__c,Closed_By__c FROM Work_Order__c];
         return wo;
       }
      
       /*webservice static String getWorkOrder(){
         return 'HELLO';*/
       }
}
-------------------------------------------------------------------------------------------------------------------------------------------------------

Any suggestions will be highly appreciated.
Best Answer chosen by AMIT KUMAR 73
pconpcon
Glad to see you got that working.  I prefer to work with my return objects being just primatives in salesforce and then mapping them to the backend object.  For example with your code I would do

global class TestWOStatus {
     global class WorkOrder {
          global String Id;
          global String accountId;
          global String productId;
          global String orderType;
          global String orderStatus;
          global String billingType;
          global String closedById;

          public WorkOrder() {}

          public WorkOrder(Work_Order__c order) {
               this.id = order.Id;
               this.accountId = order.Account__c;
               this.productId = order.Product__c;
               this.orderType = order.Order_Type__c;
               this.orderStatus = order.Order_Status__c;
               this.billingType = order.Billing_Type__c;
               this.closedById = order.Closed_By__c;
          }
     }

     webservice static List<WorkOrder> getWorkOrder() {
          List<WorkOrder> result = new List<WorkOrder>();

          for (Work_Order__c order: [
               select Account__c,
                    Product__c,
                    Order_Type__c,
                    Order_Status__c,
                    Billing_Type__c,
                    Closed_By__c
               from Work_Order__c
               top 2
          ]) {
               result.add(new WorkOrder(order));
          }

          return result;
     }
}
NOTE: This code has not be tested and may contain typographical or logical errors

By making it it's own class with member variables it allows you to change the backing data without having to change your WSDL consumer

All Answers

pconpcon
What error do you get from SoapUI?
AMIT KUMAR 73AMIT KUMAR 73
Hi pcon,

Thanks for your reply. First of all let me thanks you i have gone through lot of blogs/articles posted by you which was excellent for the beginers on SFDC. I found the issue with my custom web service call. Below is the updated code which runs without any issue.

User-added image
pconpcon
Glad to see you got that working.  I prefer to work with my return objects being just primatives in salesforce and then mapping them to the backend object.  For example with your code I would do

global class TestWOStatus {
     global class WorkOrder {
          global String Id;
          global String accountId;
          global String productId;
          global String orderType;
          global String orderStatus;
          global String billingType;
          global String closedById;

          public WorkOrder() {}

          public WorkOrder(Work_Order__c order) {
               this.id = order.Id;
               this.accountId = order.Account__c;
               this.productId = order.Product__c;
               this.orderType = order.Order_Type__c;
               this.orderStatus = order.Order_Status__c;
               this.billingType = order.Billing_Type__c;
               this.closedById = order.Closed_By__c;
          }
     }

     webservice static List<WorkOrder> getWorkOrder() {
          List<WorkOrder> result = new List<WorkOrder>();

          for (Work_Order__c order: [
               select Account__c,
                    Product__c,
                    Order_Type__c,
                    Order_Status__c,
                    Billing_Type__c,
                    Closed_By__c
               from Work_Order__c
               top 2
          ]) {
               result.add(new WorkOrder(order));
          }

          return result;
     }
}
NOTE: This code has not be tested and may contain typographical or logical errors

By making it it's own class with member variables it allows you to change the backing data without having to change your WSDL consumer
This was selected as the best answer
AMIT KUMAR 73AMIT KUMAR 73
Thanks pcon,

will definately follow your advice. 
AMIT KUMAR 73AMIT KUMAR 73
Hi Pcon,

Is there any way to generate schema for the above wsdl in salesforce.
When i import the wsdl in (JDeveloper) it's not showing the schemas for the above wsdl.
Is there any way to achieve this?

pconpcon
I don't know honestly.  If it imports into SoapUI without an issue then it might be an issue with JDeveloper and I've never used that product.
AMIT KUMAR 73AMIT KUMAR 73
No Probs. Will check this as well.
pconpcon
I just realized that the declaration of the WorkOrder is wrong, and the system won't let me edit it.  It should be:

global class WorkOrder {
          WebService String Id;
          WebService String accountId;
          WebService String productId;
          WebService String orderType;
          WebService String orderStatus;
          WebService String billingType;
          WebService String closedById;

          public WorkOrder() {}

          public WorkOrder(Work_Order__c order) {
               this.id = order.Id;
               this.accountId = order.Account__c;
               this.productId = order.Product__c;
               this.orderType = order.Order_Type__c;
               this.orderStatus = order.Order_Status__c;
               this.billingType = order.Billing_Type__c;
               this.closedById = order.Closed_By__c;
          }
     }

that should make it visible in the WSDL exported via the SFDC UI
AMIT KUMAR 73AMIT KUMAR 73
How do we write test class for the above apex code to meet all covergae criteria in salesforce?
pconpcon
It's the same as writing any other test class.  You should just create your Work_Order__c object, then call TestWOStatus.getWorkOrder() and do system.assertEquals against the resultant fields to make sure you get the expected data back.
AMIT KUMAR 73AMIT KUMAR 73
Hi,

Gone a step ahead and instead of hardcoding query wanted to create it dynamically from excel in static resource (SFDC).
Unable to achieve this logic. Is it possible ? or any approach need to be changed?

PC_WorkOrder

Apex Code:

public class DynaWSQuery{
    String result = getXml('PC_SVMAX');
    public static String getXml(String staticResourceName) {
        StaticResource defaultResource  = [select Body from StaticResource where Name = :staticResourceName];
        //String temp = EncodingUtil.base64Encode(sr.Body);       
        //System.debug('-------------->>'+[select Body from StaticResource where Name = :staticResourceName]);
        String contentFile = EncodingUtil.base64Encode(defaultResource.Body);
        String[] filelines = contentFile.split('\n');
        System.debug('>>>>>>>>>>>>>>>>>>:'+filelines);
        for (Integer i=1;i<filelines.size();i++)
        {
             //object_to_Create__c temp = object_to_Create__c();
          //String[] inputvalues = filelines[i].split(',');
       //temp.Field1__c = inputValues[0];
       //temp.Field2__c = inputValues[1];
       //defaults.add(temp);
       System.debug('Row['+i+']:'+filelines[i]);

        }
     return 'Sucess';
    }
}

Debug Log:

31.0 APEX_CODE,DEBUG;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO;VISUALFORCE,INFO;WORKFLOW,INFO
Execute Anonymous: DynaWSQuery.getXml('PC_WorkOder');
14:31:35.038 (38739016)|EXECUTION_STARTED
14:31:35.038 (38757402)|CODE_UNIT_STARTED|[EXTERNAL]|execute_anonymous_apex
14:31:35.039 (39353866)|SYSTEM_MODE_ENTER|false
14:31:35.044 (44552633)|METHOD_ENTRY|[1]|01p90000005UKAq|DynaWSQuery.DynaWSQuery()
14:31:35.044 (44580572)|METHOD_EXIT|[1]|DynaWSQuery
14:31:35.044 (44635738)|METHOD_ENTRY|[1]|01p90000005UKAq|DynaWSQuery.getXml(String)
14:31:35.044 (44952885)|SOQL_EXECUTE_BEGIN|[4]|Aggregations:0|select Body from StaticResource where Name = :tmpVar1
14:31:35.049 (49979482)|SOQL_EXECUTE_END|[4]|Rows:1
14:31:35.050 (50247952)|SYSTEM_METHOD_ENTRY|[7]|system.EncodingUtil.base64Encode(Blob)
14:31:35.050 (50534962)|SYSTEM_METHOD_EXIT|[7]|system.EncodingUtil.base64Encode(Blob)
14:31:35.050 (50578152)|SYSTEM_METHOD_ENTRY|[8]|String.split(String)
14:31:35.050 (50989082)|SYSTEM_METHOD_EXIT|[8]|String.split(String)
14:31:35.051 (51042867)|SYSTEM_METHOD_ENTRY|[9]|String.valueOf(Object)
14:31:35.051 (51136611)|SYSTEM_METHOD_EXIT|[9]|String.valueOf(Object)
14:31:35.051 (51177828)|SYSTEM_METHOD_ENTRY|[9]|System.debug(ANY)
14:31:35.051 (51187693)|USER_DEBUG|[9]|DEBUG|>>>>>>>>>>>>>>>>>>:(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)
14:31:35.051 (51283211)|SYSTEM_METHOD_EXIT|[9]|System.debug(ANY)
14:31:35.051 (51323721)|SYSTEM_METHOD_ENTRY|[10]|LIST<String>.size()
14:31:35.051 (51358786)|SYSTEM_METHOD_EXIT|[10]|LIST<String>.size()
14:31:35.051 (51381326)|METHOD_EXIT|[1]|01p90000005UKAq|DynaWSQuery.getXml(String)
14:31:35.051 (51401171)|SYSTEM_MODE_EXIT|false
14:31:35.092 (51450628)|CUMULATIVE_LIMIT_USAGE
14:31:35.092|LIMIT_USAGE_FOR_NS|(default)|
  Number of SOQL queries: 1 out of 100
  Number of query rows: 1 out of 50000
  Number of SOSL queries: 0 out of 20
  Number of DML statements: 0 out of 150
  Number of DML rows: 0 out of 10000
  Maximum CPU time: 0 out of 10000
  Maximum heap size: 0 out of 6000000
  Number of callouts: 0 out of 10
  Number of Email Invocations: 0 out of 10
  Number of future calls: 0 out of 10
  Number of Mobile Apex push calls: 0 out of 10

14:31:35.092|CUMULATIVE_LIMIT_USAGE_END

14:31:35.051 (51483425)|CODE_UNIT_FINISHED|execute_anonymous_apex
14:31:35.054 (54459742)|EXECUTION_FINISHED
    
pconpcon
I would recommend against doing something like this.  You will still need to have each field enumerated in your WebService class to have it show up in your WSDL.  You could do something like returning a JSON object as one of your fields, but that is very much against how XML is suppose to work.  If you want to make it so you don't have to change query every time you added a new field you could do something like the code below, but even that I would have to recommend against.

global class TestWOStatus {
     global class WorkOrder {
          WebService String Id;
          WebService String accountId;
          WebService String productId;
          WebService String orderType;
          WebService String orderStatus;
          WebService String billingType;
          WebService String closedById;

          public static Map<String, String> fieldMap = new Map<String, String>{
               'Id' => 'Id,
               'accountId' => 'Account__c',
               'productId' => 'Product__c',
               'orderType' => 'Order_Type__c',
               'orderStatus' => 'Order_Status__c',
               'billingType' => 'Billing_Type__c',
               'closedById' => 'Closed_By__c'
          };

          public WorkOrder() {}

          public WorkOrder(Work_Order__c order) {
               this.id = order.get(fieldMap.get('Id'));
               this.accountId = order.get(fieldMap.get('accountId'));
               this.productId = order.get(fieldMap.get('productId'));
               this.orderType = order.get(fieldMap.get('orderType'));
               this.orderStatus = order.get(fieldMap.get('orderStatus'));
               this.billingType = order.get(fieldMap.get('billingType'));
               this.closedById = order.get(fieldMap.get('closedById'));
          }
     }

     webservice static List<WorkOrder> getWorkOrder() {
          List<WorkOrder> result = new List<WorkOrder>();
          String query = 'select ' + String.join(fieldMap.values(), ',') + 'from Work_Order__c top 2';

          for (sObject obj: Database.query(query)) {
               Work_Order__c order = (Work_Order__c)(obj);
               result.add(new WorkOrder(order));
          }

          return result;
     }
}


Sunil DwarakanathSunil Dwarakanath
Hi,
I am writing a web service for fetching a custom object value in the same type as Amit has mentioned in the screenshot.
Can you please let me know how to access result for the same after uploading WSDL into salesforce.