Coder Social home page Coder Social logo

apex-toolingapi's Issues

Tests fail only during package upload - "CalloutException uncommitted work pending

A problem probably connected to a recent system change (Winter '18 release?) makes the upload of packages fail that contain the MetadataService fail with

MetadataServiceTest.coverGeneratedCodeFileBasedOperations1 | System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out | Class.NS.MetadataService.MetadataPort.retrieve: line 11450, column 1 Class.NS.MetadataServiceTest.coverGeneratedCodeFileBasedOperations1: line 97, column 1

MetadataServiceTest.coverGeneratedCodeFileBasedOperations2 | System.CalloutException: You have uncommitted work pending. Please commit or rollback before calling out | Class.NS.MetadataService.MetadataPort.deleteMetadata: line 11320, column 1 Class.NS.MetadataServiceTest.coverGeneratedCodeFileBasedOperations2: line 117, column 1

The same problem occurs in the ToolingApi Wrapper by Andy Fawcett.

cursor_und_package_upload__cprm_process_management__1_59__pm____salesforce

I also posted this on StackExchange https://salesforce.stackexchange.com/questions/196996

Unable to get the type of List/Set/Map added as parameter to a method

Hi Andy

I can see that the Parameter class has only two variable defined i.e. name and type. This works fine for any primitive data types but doesn't work well for any collection parameters as there isn't any reference for the type of collection parameter.

For e.g. if a method is defined as:
public void exampleMethod(List(String) paramStr, List(sObject) sObjects) {
// Sorry, wasn't able to specify it as List<>
}

When I'm trying to retrieve the parameters for the method using SymbolTable, I'm able to get Parameter as:
(Parameter:[name=paramStr, type=LIST],
Parameter:[name=sObjects, type=LIST])

Is there any way I can get the type of Lists (i.e. List(String) or List(sObject)) in this example? It would be really helpful if you could let me know any other property that I'm missing over here.

Thanks in advance.

Field "modifiers" in tableDeclaration in SymbolTable is always empty

Hi!

When I retrieve a SymbolTable of an Apex class, the field "modifiers" in tableDeclaration is always empty. When I have "public virtual class ..." or "public with sharing class ..." - no matter it's always empty. The class is valid.

All other fields like constructors, methods and properties I retrieve without any problems (with their modifiers as well).

Thank you,
Liudmila

Create Call INVALID_TYPE: Must send a concrete entity type

Hello,

I have an issue while trying to create ApexClassMember :
System.CalloutException: Web service callout failed: WebService returned a SOAP Fault: INVALID_TYPE: Must send a concrete entity type. faultcode=sf:INVALID_TYPE faultactor=

Here is the code :
List<ToolingAPIWSDL.ApexClassMember> lACM = new List<ToolingAPIWSDL.ApexClassMember>(); for(ToolingAPI.ApexClass aAC : apexClasses){ // ApexClasses are previously fetched with a query call which is ok ToolingAPIWSDL.ApexClassMember aACM = new ToolingAPIWSDL.ApexClassMember(); aACM.Body = aAC.Body; aACM.ContentEntityId = aAC.Id; aACM.MetadataContainerId = aSR.id; // Come from lACM.add(aACM); } tooling.create(lACM); // This call generate the error

Is there anything wrong with the code ?
How should I do ?

Regards

Question: retrieving metadata from

Hello, I may be at the wrong place to ask that but I found none other!

I'm an intern working on salesforce and I'm trying to create a Documentation generator in apex, so I installed this tool, wich alllows me to get all the metadata I need through the tooling API.
BUT I'm trying to figure out how to retrieve the metadata for Validation rules (among other things) of a specific object, and I can't seem to figure out how to do that properly.

Here's how I tried to do that:

ToolingApi toolingApi = new ToolingApi();
ToolingAPIWSDL.QueryResult qr = toolingApi.query('Select Id, metadata From ValidationRule','ToolingAPIWSDL.ValidationRule');
for(ToolingAPIWSDL.ValidationRule vr : (List<ToolingAPIWSDL.ValidationRule>)qr.records){
    System.debug(vr.metadata);
}

I run that in anonymous in the developper console and it gives me this error:

Line: 4627, Column: 1
System.CalloutException: Web service callout failed: Unable to parse callout response. Apex type not found for element active

I'm probably using it wrong, but I've been stuck on this for two days and this seem like the perfect solution to my needs so if you can help me out, or even just point me to the documentation or example I've been looking for I'd be the happiest salesforce developper !

Thanks in advance :)

Reading Picklist information from CustomField does not return picklist info

This is actually a bug in the Tooling API itself rather than the wrapper, but logging here to discuss. I did some research over on this StackExchange answer here.

To test this i updated the ToolingAPIDemo class and output the JSON returned, also tested (as per StackExchange answer) in Workbench, the info is just not present, yet you get the corresponding number of pick list items.... 👎

    public static void updatePicklist() {
        ToolingAPI toolingAPI = new ToolingAPI();

        // Query CustomObject object by DeveloperName (note no __c suffix required)
        List<ToolingAPI.CustomObject> customObjects = (List<ToolingAPI.CustomObject>) 
            toolingAPI.query('Select Id, DeveloperName, NamespacePrefix From CustomObject Where DeveloperName = \'Test\'').records;

        // Query CustomField object by Name (filtered by CustomObject Id)
        Id customObjectId = customObjects[0].Id;                            
        List<ToolingAPI.CustomField> customFields = (List<ToolingAPI.CustomField>) 
            toolingAPI.query('Select Id, DeveloperName, NamespacePrefix, TableEnumOrId, Metadata From CustomField Where TableEnumOrId = \'' + customObjectId + '\' And DeveloperName = \'YesNo\'').records;

        // Dump Picklist entries            
        for(ToolingAPI.PicklistEntry picklistEntry : customFields[0].metadata.picklist.pickListValues) {
            System.debug('Pick list label ' + picklistEntry.label);
        }

        // Next step would be to update pick list values and call the update Tooling API end point
        // ...
    }

Error getting retrieving metadata on FieldDefinition

Came across this, I think it might be a bug:

ToolingApi toolingApi = new ToolingApi();
ToolingAPIWSDL.QueryResult qr = toolingApi.query('Select metadata From FieldDefinition WHERE EntityDefinition.QualifiedApiName=\'Account\' ','ToolingAPIWSDL.FieldDefinition');

Throws the following exception:

System.JSONException: Duplicate field: ToolingAPIWSDLMetadata.PicklistValue.won_type_info

EntityDefinition field missing on ValidationRule

SELECT Fullname, metadata, entitydefinition FROM ValidationRule WHERE EntityDefinition.QualifiedApiName='Account'

For example gives me:

Web service callout failed: WebService returned a SOAP Fault: INVALID_FIELD: Select Fullname, metadata, EntityDefinition From ValidationRule ^ ERROR at Row:1:Column:28 No such column 'EntityDefinition' on entity 'ValidationRule'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names. faultcode=sf:INVALID_FIELD faultactor=

REST: Type of properties or variables in ApexClass.SymbolTable always null

Hey,

when retrieving ApeClasses with their Symbol Tables via

ToolingAPI.QueryResult qr = toolingApi.query('Select id,name, SymbolTable from ApexClass limit 1');

and looping through results, to retrieve properties and variables, I always get Type = null

Is that a known limitation of the REST version?

Reason for layout of project folder structure

@afawcett and @dancinllama

I am curious about why the project folder structure for apex-toolingapi is setup the way it is. Specifically, what was the reason to check in the parent workspace folder of the project (i.e. "/apex-toolingapi") and subsequently all other project files are one folder level lower than normal? Is there an advantage to setting up the project this way that I am not recognizing?

Thanks for the info.

Cheers!

INVALID_FIELD_FOR_INSERT_UPDATE : No access to entity "NS__PackagedObject__c"

I have a managed (in my ISV package) class that creates an unmanaged class (outside of the package) based on database data.

When I do:

toolingAPI.createSObject(newClass); 

it fails with the error:

INVALID_FIELD_FOR_INSERT_UPDATE : No access to entity 'up2go_2f__deliveryschedule__c'
Error is in expression '{!proceedAction}' in component <apex:commandButton> in component up2go_2f:confirm
Error is in expression '{!doGenerateAndLinkClass}' in component <apex:commandButton> in page up2go_2f:generatehighperformanceclass

The entity it does not seem to have access to is an SObject of a packaged type, so not a class. So I see no reason why someone outside should not be able to use and compile a reference to such a record.

Retrieving only 2000 custom fields

Hi Andrew,

I am using your sample code for retrieving Custom fields and Custom Objects, the issue I am facing is that in our org we have around 3k custom fields,

when I try to do the same with your class ToolingApi I only get 2000 custom fields. Sample code below
ToolingAPI toolingAPI = new ToolingAPI();
List<ToolingAPI.CustomField> customFields = (List<ToolingAPI.CustomField>)
toolingAPI.query('Select Id, DeveloperName, NamespacePrefix, TableEnumOrId From CustomField ').records;
System.debug(customFields.size());

Any ideas why I am getting only 2k fields ?

Update: I figured it out , would have to retrieve records using "nextRecordsURL" .

Should we rename project branches to clearly show type?

@dancinllama and @afawcett

If we are going to maintain two variants of this project, one for SOAP and one for REST, then I would recommend that we rename the branches to the following:

  • master -> apex-toolingapi-soap-variant-master
  • apex-toolingapi-rest -> apex-toolingapi-rest-variant-master

...or something equivalent. These suggestions are a tad verbose, but they leave no room for misunderstanding of purpose.

Thoughts?

Retrieving WorkflowRule resulting in System.JSONException: Expected ToolingAPI.WorkflowActionReference but found [

When trying to retrieve workflowrule (using toolingapi stub), getting following error:

System.JSONException: Expected ToolingAPI.WorkflowActionReference but found [line:1, column:568]
STACKTRACE: (System Code)
Class.ToolingAPI.getQueryResultRecords: line 539, column 1
Class.ToolingAPI.parseQueryResult: line 520, column 1
Class.ToolingAPI.query: line 111, column 1

Any clue what this error is about? Is JSON parser not able to parse certain part of received response containing actions? Please advise here!

References of methods from Symbol Table = null

Hi, Andrew! Thank you for your tool.

I want to get all references and external references of Apex Class method. My code:
`
ToolingAPIWSDL.SforceService toolingService = new ToolingAPIWSDL.SforceService();
toolingService.SessionHeader = new ToolingAPIWSDL.SessionHeader_element();
toolingService.SessionHeader.SessionId = UserInfo.getSessionId();
toolingService.endpoint_x = URL.getSalesforceBaseUrl().toExternalForm() + '/services/Soap/T/33.0';

ToolingAPIWSDL.QueryResult result = toolingService.query('select Id, Name, symbolTable from     ApexClass WHERE Name Like \'MyApexClass\'');
for(ToolingAPIWSDL.sObject_x acx : result.records) {
    System.debug(acx.symbolTable.methods);

}`

MyApexClass:
`public with sharing class MyApexClass {

private void testA(){}

public void testB(){
    testA();
}

}`

But in all methods I get references = null (really It should not be? because I call testA() method in testB()):

18:04:16:245 USER_DEBUG [8]|DEBUG|(Method:[apex_schema_type_info=(urn:tooling.soap.sforce.com, true, false), field_order_type_info=(location, modifiers, name, references, type_x, visibility, parameters, returnType), location=Position:[apex_schema_type_info=(urn:tooling.soap.sforce.com, true, false), column=18, column_type_info=(column, urn:tooling.soap.sforce.com, null, 1, 1, false), field_order_type_info=(column, line), line=3, line_type_info=(line, urn:tooling.soap.sforce.com, null, 1, 1, false)], location_type_info=(location, urn:tooling.soap.sforce.com, Position, 1, 1, false), modifiers=(private), modifiers_type_info=(modifiers, urn:tooling.soap.sforce.com, string, 0, -1, false),**name=testA,**name_type_info=(name,** urn:tooling.soap.sforce.com, string, 1, 1, false), parameters=null, parameters_type_info=(parameters, urn:tooling.soap.sforce.com, Parameter, 0, -1, false), references=null, references_type_info=(references, urn:tooling.soap.sforce.com, Position, 0, -1, false), returnType=void, returnType_type_info=(returnType, urn:tooling.soap.sforce.com, string, 1, 1, false), type_x=null, type_x_type_info=(type, urn:tooling.soap.sforce.com, string, 1, 1, false), visibility=Private, visibility_type_info=(visibility, urn:tooling.soap.sforce.com, SymbolVisibility, 1, 1, false)], Method:[apex_schema_type_info=(urn:tooling.soap.sforce.com, true, false), field_order_type_info=(location, modifiers, name, references, type_x, visibility, parameters, returnType), location=Position:[apex_schema_type_info=(urn:tooling.soap.sforce.com, true, false), column=17, column_type_info=(column, urn:tooling.soap.sforce.com, null, 1, 1, false), field_order_type_info=(column, line), line=6, line_type_info=(line, urn:tooling.soap.sforce.com, null, 1, 1, false)], location_type_info=(location, urn:tooling.soap.sforce.com, Position, 1, 1, false), modifiers=(public), modifiers_type_info=(modifiers, urn:tooling.soap.sforce.com, string, 0, -1, false), name=testB, name_type_info=(name, urn:tooling.soap.sforce.com, string, 1, 1, false), parameters=null, parameters_type_info=(parameters, urn:tooling.soap.sforce.com, Parameter, 0, -1, false), references=null, references_type_info=(references, urn:tooling.soap.sforce.com, Position, 0, -1, false), returnType=void, returnType_type_info=(returnType, urn:tooling.soap.sforce.com, string, 1, 1, false), type_x=null, type_x_type_info=(type, urn:tooling.soap.sforce.com, string, 1, 1, false), visibility=Public, visibility_type_info=(visibility, urn:tooling.soap.sforce.com, SymbolVisibility, 1, 1, false)])

Unable to QUERY ValidationRule, throws GACK error

These days I'm continuously getting GACK error when I try to make a TOOLING API QUERY call.This used to work earlier.

/services/data/v33.0/tooling/query/?q=Select+Id%2C+FullName+FROM+ValidationRule+limit+100
gives error: An unexpected error occurred. Please include this ErrorId if you contact support: 1269173235-153226 (-6049864)

Am I missing something? or it's really a GACK ie salesforce issue around tooling api for ValidationRule?

Unable to cast ApexClass into sobject_x when calling the create method.

Hi

I'm unable to cast ApexClass list into sObject_x list while calling the create() method. The error that I'm getting when making a callout is: "System.UnexpectedException: Got an unexpected error in callout : null. Contact support with error ID: 552847890-13469 (-979352524)"

Request:

create_element:[apex_schema_type_info=(urn:tooling.soap.sforce.com, true, false), field_order_type_info=(sObjects), sObjects=(sObject_x:[ApexClass=ApexClass:[ApiVersion=33.0, ApiVersion_type_info=(ApiVersion, urn:tooling.soap.sforce.com, null, 0, 1, true), Body=@istest
private class Test_toolingSoapSforceCom {

}, BodyCrc=null, BodyCrc_type_info=(BodyCrc, urn:tooling.soap.sforce.com, null, 0, 1, true), Body_type_info=(Body, urn:tooling.soap.sforce.com, null, 0, 1, true), CreatedBy=null, CreatedById=null, CreatedById_type_info=(CreatedById, urn:tooling.soap.sforce.com, null, 0, 1, true), CreatedBy_type_info=(CreatedBy, urn:tooling.soap.sforce.com, null, 0, 1, true), CreatedDate=null, CreatedDate_type_info=(CreatedDate, urn:tooling.soap.sforce.com, null, 0, 1, true), FullName=Test_toolingSoapSforceCom, FullName_type_info=(FullName, urn:tooling.soap.sforce.com, null, 0, 1, true), Id=null, Id_type_info=(Id, urn:tooling.soap.sforce.com, null, 1, 1, true), IsValid=true, IsValid_type_info=(IsValid, urn:tooling.soap.sforce.com, null, 0, 1, true), LastModifiedBy=null, LastModifiedById=null, LastModifiedById_type_info=(LastModifiedById, urn:tooling.soap.sforce.com, null, 0, 1, true), LastModifiedBy_type_info=(LastModifiedBy, urn:tooling.soap.sforce.com, null, 0, 1, true), LastModifiedDate=null, LastModifiedDate_type_info=(LastModifiedDate, urn:tooling.soap.sforce.com, null, 0, 1, true), LengthWithoutComments=null, LengthWithoutComments_type_info=(LengthWithoutComments, urn:tooling.soap.sforce.com, null, 0, 1, true), Metadata=null, Metadata_type_info=(Metadata, urn:tooling.soap.sforce.com, null, 0, 1, true), Name=Test_toolingSoapSforceCom, Name_type_info=(Name, urn:tooling.soap.sforce.com, null, 0, 1, true), NamespacePrefix=null, NamespacePrefix_type_info=(NamespacePrefix, urn:tooling.soap.sforce.com, null, 0, 1, true), Status=Active, Status_type_info=(Status, urn:tooling.soap.sforce.com, null, 0, 1, true), SymbolTable=null, SymbolTable_type_info=(SymbolTable, urn:tooling.soap.sforce.com, null, 0, 1, true), SystemModstamp=null, SystemModstamp_type_info=(SystemModstamp, urn:tooling.soap.sforce.com, null, 0, 1, true), apex_schema_type_info=(urn:tooling.soap.sforce.com, true, false), field_order_type_info=(fieldsToNull, Id, ApiVersion, Body, BodyCrc, CreatedBy, CreatedById, CreatedDate, FullName, IsValid, ...), fieldsToNull=null, fieldsToNull_type_info=(fieldsToNull, urn:tooling.soap.sforce.com, null, 0, -1, true), sObject_x.ApexClass=null, sObject_x.ApexClass_type_info=(ApexClass, urn:tooling.soap.sforce.com, null, 0, 1, true), sObject_x.Id=null, sObject_x.apex_schema_type_info=(urn:tooling.soap.sforce.com, true, false), sObject_x.fieldsToNull=null], ApexClass_type_info=(ApexClass, urn:tooling.soap.sforce.com, null, 0, 1, true), Id=null, apex_schema_type_info=(urn:tooling.soap.sforce.com, true, false), fieldsToNull=null]), sObjects_type_info=(sObjects, urn:tooling.soap.sforce.com, null, 0, -1, false)]

Please could you help.

Thanks
Pratyush

Support Heap Dumps

The types exist to describe a HeapDump but need their inheritance wiring up (need to figure out how to support the XXXValue types via polymorphic deserialize).

WSDL question

gm, I know that this repo is incredibly old and obviously not maintained, but I was wondering as I am trying to do something similar...

Did you take and break down the the Apex2WSDL into separate files so the entire thing would fit into the org?

thanks
Chris

Add support for ApexPageMember

Hi Andrew
the current version does not support ApexPageMember because of missing serialization. I think it is very easy to fix an I provided a solution which is working great for my purpose. Have a look at it here: http://salesforce.stackexchange.com/questions/42736/edit-existing-visualforce-page-apexpage-using-andrewfawcett-toolingapi-package

Just let me know if you have any questions and thanks a lot for all your effort on ToolingAPI.cls. It rocks! We use it for http://www.elastify.eu/apps/CodeFusion

Uwe

Custom Field Ids in Standard Objects

Hi Andy,

Thanks for your hardwork with the Tooling API. I checked out your code example for custom object/fields and it works great for a sample custom object in my Org. However, I have some custom fields in the Lead standard object and from what I found from the Salesforce Tooling API doc, the API does not seem to support standard objets – which is a bummer.

The workaround is that I am using the listMetaData method from your excellent Metadata API apex wrapper, and I am able to get the Ids of custom fields in the Lead object. The only issue with this method is that it gives the Ids of all the fields in the Org, thus is probably not the most efficient way to get to find the Id of a specific custom field. Please let me know if there is a better way to find the Ids.

Thanks again for the API classes. I find them very useful.

Madhav

Fetching Health Check Score and RiskTypes from the Org into the Code

Hello, @afawcett

The current version does not support "SecurityHealthCheck" and "SecurityHealthCheck" for fetching health check scores and risk types from the org into the code. For this to be added it requires the tooling API version to be at least 37 or more than 37.

Links for the same:

  1. SecurityHealthCheck: https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_securityhealthcheck.htm

  2. SecurityHealthCheck: https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_securityhealthcheckrisks.htm

Thanks,
Sourabh

INVALID_SESSION_ID

Apologies in advance if this is something obvious that I've missed.

I copied ToolingAPI.cls into my developer org, added the remote site for my org and ran the following snippet in the developer console (per http://andyinthecloud.com/2014/01/05/querying-custom-object-and-field-ids-via-tooling-api/):

ToolingAPI toolingAPI = new ToolingAPI();
List<ToolingAPI.CustomObject> customObjects = (List<ToolingAPI.CustomObject>)
     toolingAPI.query('Select Id, DeveloperName, NamespacePrefix From CustomObject Where DeveloperName = \'DateTest\'').records;

I'm greeted with the following error:
01:12:55.116 (116031036)|CALLOUT_REQUEST|[1820]|System.HttpRequest[Endpoint=https://na10.salesforce.com/services/data/v30.0/tooling/query/?q=Select+Id%2C+DeveloperName%2C+NamespacePrefix+From+CustomObject+Where+DeveloperName+%3D+%27DateTest%27, Method=GET]
...
01:12:55.213 (213558224)|CALLOUT_RESPONSE|[1820]|System.HttpResponse[Status=Unauthorized, StatusCode=401]
...
01:12:55.220 (220007989)|EXCEPTION_THROWN|[1841]|ToolingAPI.ToolingAPIException: INVALID_SESSION_ID : Session expired or invalid

Invalid conversion from runtime type List<ToolingAPIWSDL.sObject_x> to List<ToolingAPIWSDL.CustomObject>

I tried to convert this sample to using the WSDL:
http://andyinthecloud.com/2014/01/05/querying-custom-object-and-field-ids-via-tooling-api/

    String objectName = 'Job_Activity';
    String fieldName = 'Order_Line';
    ToolingAPI toolingAPI = new ToolingAPI();
    List<ToolingAPIWSDL.CustomObject> customObjects = (List<ToolingAPIWSDL.CustomObject>)
        toolingAPI.query('Select Id, DeveloperName, NamespacePrefix From CustomObject Where DeveloperName = \''+objectName+'\'').records;

    ToolingAPIWSDL.CustomObject customObject = customObjects[0];
    Id customObjectId = customObject.Id;
    List<ToolingAPIWSDL.CustomField> customFields = (List<ToolingAPIWSDL.CustomField>)
         toolingAPI.query('Select Id, DeveloperName, NamespacePrefix, TableEnumOrId From CustomField Where DeveloperName = \''+fieldName+'\' and TableEnumOrId = \'' + customObjectId + '\'').records;

Upon trying to run this, I get:

 Invalid conversion from runtime type List<ToolingAPIWSDL.sObject_x> to List<ToolingAPIWSDL.CustomObject>

Am I missing something obvious?

ToolingAPI.ToolingAPIException: INVALID_TYPE : sObject type ‘CustomEntityDefinition’ is not supported.

When a non-admin (it works for admins) calls those methods in a "with sharing" controller extension:

public String getRelatedListId() {
String result = null;

        String soql = 'SELECT Id FROM CustomField WHERE DeveloperName = \'mdr_Travel\' AND TableEnumOrId = \'' + getExpenseObjectId() + '\'';
        List<ToolingAPI.CustomField> customFields = (List<ToolingAPI.CustomField>) toolingAPI.query(soql).records;

        if(customFields.size() == 1) {
                result = customFields.get(0).Id;
                result = result.Substring(0,15);
        }       

    return result;
}


private Id getExpenseObjectId() {
    Id result = null;

    String soql = 'SELECT Id FROM CustomObject WHERE DeveloperName = \'Expense\'';
            List<ToolingAPI.CustomObject> customObjects = (List<ToolingAPI.CustomObject>) toolingAPI.query(soql).records;

            if(customObjects.size() == 1) {
                    result = customObjects.get(0).Id;
            }

    return result;
}

he receives a

UP2GO_ITE.ToolingAPI.ToolingAPIException: INVALID_TYPE : sObject type ‘CustomEntityDefinition’ is not supported.
Class.UP2GO_ITE.ToolingAPI.submitRestCall: line 1841, column 1
Class.UP2GO_ITE.ToolingAPI.submitRestCall: line 1782, column 1
Class.UP2GO_ITE.ToolingAPI.submitRestCall: line 1774, column 1
Class.UP2GO_ITE.ToolingAPI.query: line 105, column 1
Class.UP2GO_ITE.TravelCtrlExt.getExpenseObjectId: line 125, column 1
Class.UP2GO_ITE.TravelCtrlExt.getRelatedListId: line 109, column 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.