Showing posts with label soap. Show all posts
Showing posts with label soap. Show all posts

Thursday, December 31, 2020

DataBasin 1.1 S released

DataBasin 1.1S and DataBasinKit have finally been released, after a long time-span.

This release is dedicated to my late friend and colleague Steven Rovelli (hence the "S" in the release name) who parted from us too young. He was an enthusiastic user of DataBasin and used and supported it inside our company, for countless AMS tasks. COVID-19 carried him away and he will be sorely missed.

This release is marks also the move from the GAP svn repository, to standalone projects on GitHub.

DataBasin sports some interesting news:

  • Improved interface with ComboBoxes to select update/insert objects and preferences to filter out more system objects
  • remember last successful login username
  • getUpdated / getDeleted
  • Undelete
  • Improved support for sub-objects and lists and unpacking (from DataBasinKit), this allows for example to use sub-queries, provided the related object is one (LIMIT 1)
  • support for enabling Assignment Rules in create/update

The core DataBasinKit has also many improvements,, some of them are not completely appreciated from the GUI interface, but useful for other programs wishing to use the API:

  • enhanced and rewritten handling of sub-objects and object-lists in query results: this allows to have SObject lists interpreted as such when using subqueries.
  • getUpdated and getDeleted
  • undelete
  • possiblity trigger Assignment Rules in create & update

Thursday, July 12, 2018

DataBasin + DataBasinKit 1.0 released

A new release (1.0) for DataBasin and its framework DataBasinKit is out!

This release provides lots of news, most of the enhancements coming from the framework and exposed by the GUI:
  • Update login endpoint to login.salesforce.com (back again!)
  • Implement retrieve (get fields from a list of IDs, natively)
  • Support nillable fields on create
  • save HTML tables and pseudo-XLS in HTML-typed formats
  • Fix cloning of connections in case of threading
  • Implement Typing of fields after describing query elements (DBSFDataTypes)

DataBasin is a tool to access and work with SalesForce.com. It allows to perform queries remotely, export and import data, inspect single records and describe objects. DataBasinKit is its underlying framework which implements the APIs in Objective-C. Works on GNUstep (major Unix variants and MinGW on windows) and natively on macOS.

Saturday, June 25, 2016

DataBasin - object inspector and updates

First, the underlying DataBasinKit framework got an important update.
[DBSoap update] now supports setting fields to null. That was quite a major detail missing: you could reset to blank even string fields.
This required me to fiddle a bit to generate the fieldsToNull list. Every field passed with an empty string value is considered to null.

<update xmlns="...">
<sobject xsi:type="sf:Account">
<id>....</id>
<fieldsToNull>AccountNumber</fieldsToNull>
<fieldsToNull>OtherCity</fieldsToNull>
<Name>New Name</Name>
</sobject>
</update>


The Object Inspector, the handy tool which allows you to inspect all field values of a record and knowing immediately their developer name given the Object Salesforce Id, how got update powers!



As the Screenshot (here on MacOS) shows, changed values show in a different color (non-updatable fields show in italics and their Cell is not editable). The total number of fields to be changed is summed up in the status field. Only fields marked as changed are updated when the Update button is pressed, other are left as-is and not overwritten for safety.

Further work has been done in the Inspector and full search filtering is now available!
Just entering a a sting will filter out the relevant rows. Both the Field Name or Developer Name are matched, as well as the content! It is thus super-easy to look for all fields (also fields not at layout) which have a certain Value. All fields false? easy as in the screenshot:



Friday, January 09, 2015

DataBasin 0.8

DataBasin 0.8 is out!

After several months of development and testing, many news:
  • DataBasin is now divided in its DataBasinKit framework which is LGPL'd and the application itself
  • (CSV writing) Support of empty fields in empty semi-joined objects through query parsing
  • (CSV writing) Support for writing fields in exact order as in user query, trough query parsing
  • Select Identify supports LIMIT
  • Customizable CSV file quoting and separator
  • Support for COUNT and aggregate queries
  • Object Inspector supports selection of values in cells
The most important news is the DataBasinKit separation.
The most important feature instead is DataBasin ability to parse the SOQL query and thus rearrange the output fields in CSV files not as Salesforce returns them but as the user requested them. The same feature allows related objects (. notation) to be null and retain the correct columns in the CSV file.

Thursday, March 10, 2011

DataBasin: object inspection


DataBasin now sports an Object Inspector which works in the easiest way possible: insert a SalesForce.com ID: DataBasin will try to attempt do determine the object type, automatically describe it and finally load the data.

How many times did you have the need to quickly inspect an Object of which you got the ID in an exception email? Or how many times did you have to inspect the value of a field not visible on the layout?

This new feature required some extension to the underlying API of DB: the Soap class now has an identifier method which looks for an ID in all objects returned by the Describe Global in the attempt to identify the object it comes from.

The coolest addition however is in the DBSObject class itself: it is capable of loading or refreshing the values of a set of fields or of all known fields. And behold, a finesse: when loading the value of all fields, the queries will be split into executable queries without reaching the maximum SOQL size of 10K chars, as opposed to Apex Explorer which chokes if you select all fields of a very big object.

Sunday, November 28, 2010

DataBasin 0.2

DataBasin v 0.2 was released, the free software, open source tool for working with Salesforce.com.

The core library was enhanced and new features were added.

Read more and download it from the DataBasin homepage.

Friday, June 25, 2010

First release of DataBasin


I'm pleased to announce the first release of DataBasin, a tool which allows to access Data on SalesForce.com using its WebService APIs. Core part of the tool is the API implementation in Objective-C, which uses the GNUstep WebServices for the low-level interaction.

The API implementation is designed to be reusable in other application and is LGPL'd.

Basic functionalities like Query, Insert and Delete are implemented (and of course log-in!) but the tool contains many rough parts, like the CVS importer/exporter so production use is not yet recommended.

As far as I know this is the only open source library for Salesforce.com, at least in Objective-C.

In the screenshot DataBasin running on Debian GNU/Linux.


A big thanks to many friends who helped me implementing the API and debugging the SOAP Calls. First of all Richard Frith-MacDonald who extended the GSWS to support SOAP in the first place. Then two colleagues, Andrea Rosa and Enrico Murru who helped track down many bugs.




Thursday, March 25, 2010

DataBasin gets Update and a new inspector


DataBasin, the SOAP data access tool for Salesforce of the GNUstep Application Project, got new features! Check the screenshot.

The SOAP layer was enriched with the update call. To perform an update the steps are identical to an Insert and the already existing object describe is use to retrieve the list of available objects. Currently, as with Insert, the CSV column titles need to match exactly the Salesforce fields.

Also, DataBasin got a new inspector about the user properties retrieved during login. These informations can be handy during development, like the ID of the Org, the User, its profile and role. They are exposed in Output-only fields with support for copy-paste to other applications

Tuesday, October 20, 2009

DataBasin and deletion of Salesforce records


I implemented delete in the Salesforce.com API Layer (DBSoap) of DataBasin.

The screenshot shows DataBasin running on the Mac, natively built in Xcode.

Delete is capable of deleting an array of records, on top of this I implemented a convenient function: QuickDelete. Just enter a Saleforce.com ID and delete it.

Full handling of the error results is still missing, currently only the verbose message are retrieved. For the QuickDelete an error gets conveniently displayed as if it were an exception in a small scrollable panel.



Friday, August 21, 2009

DataBasin is now able to create records in sfdc


DataBasin is now able to create records in SalesForce.com starting from a CSV file.

First, as shown in the screenshot, the already implemented method describeGlobal retrieves the available objects to insert into. Once the user selects them the CSV file is read and the objects get created. There is no provision yet for mapping the fields, the first line is assumed to contain the field names.

The API implemented by DBSoap is now getting a little more complete step after step. The basic operations of creation and query are already possible.

Saturday, August 08, 2009

describeGlobal implemented in DataBasin

I implemented describeGlobal in the DBSoap layer of DataBasin which communicates with salesforce.com. Thus a list of all objects in the system can be queried, standard and custom objects. The return is just an array of strings.

Step after step I am recreating a simple API interface to the salesforce.com Web services in pure Objective-C.

Tuesday, January 20, 2009

DataBasin, or how to access salesforce.com from Objective-C


After several weeks of work, I can announce my first concrete success: the download of the contact list from the CRM to a CSV file.

On supported platforms, like Java or C#, salesforce.com offers libraries for a convenient access to their APIs (webservice interfaces). For Objective-C and GNUstep of course there is nothing of the kind. Thus I started writing a layer to access the webservices directly using SOAP calls. To be able to write those, I use GNUstep's WebServices framework, which I discovered was still quite rough and incomplete. Richard Frith-MacDonald though promptly debugged it and extended it. Until the first login was possible, a lot of debugging and investigation on the calls was necessary, I was patiently supported by my colleague Andrea Rosa.

Currently the donload means that the Login method completes correctly and returns a valid session, which is then reused to perform the query request and interpret its response. It is a demonstration that the whole concept can work

My intention is to develop DataBasin to be a free Open Source alternative to the DataLoader tool supplied by salesforce.com. Once I reach that goal, I alreayd have further ideas on how to extend it.

DataBasin is part of the GNUstep Application Project and will be released there once ready for prime time.