Filling dojo combobox with json data - json

I have a json object retrieved from a method which contains user information. I want to set that json object as a store of a dojo combobox. Please help.

So if I understand correctly, you want to use a single object as the store of a combobox (so it would only give 1 option?). If you're trying to use an array of JSON objects as a JSON store, I suggest looking at enter link description here.
As you can see they have a store with inside the data attribute an array of JSON objects.
new Memory({
data: [
...
]
});
Then they create a ComboBox and the most important things are the store and the searchAttr properties. With the store property you can connect your store to the combobox and with the searchAttr property you can say which property of your JSON object is the visible thing that should be displayed in your combobox.

Related

Alpha anywhere: Can I populate JSON data into the list

Can I populate a list with JSON data? I have a general list containing data available for several sessions but I need to filter them with my current session and insert them to another list. My idea is to use the filtered JSON data since I successfully filtered them in JSON format. I've looked into some threads that might relate but currently get nothing. Hope someone can point me to the right page.
I missed this page: or maybe I overlooked it: https://forum.alphasoftware.com/showthread.php?119524-How-to-populate-a-List-from-a-JSON-formatted-field.
Anyway, populating JSON data into list in alpha anywhere is easy to be done. Firstly, get the JSON data(in my case I produce them from another list). With this data(already in JSON format), I do the filter using:
var filtered_json = find_in_object(JSON.parse('my_JSON_data'), {my_filter_condition});
Then, the result should be in [object object][object object]
Finally, populate the result to the list.
var lObj= {dialog.object}.getControl('my_list_ID')
lObj.populate(filtered_json);

JSON data in spring model

Its a spring based web application. I have a data table in the screen. In my understanding, data table accepts only data in JSON format. so i have a field(String) in my model for holding data table data, the same will be hidden in the screen. Upon listing(form submit not ajax), I would serialize the list to JSON data and keep it in the model. In Javascript, I would populate the data table using the data in the hidden field. It works fine but i have a doubt like whether it is a correct approach ?
I have a export to excel functionality. I would pass the model in the ajax call and get the data from the model and create the XLSX file. Issue is if the data has 3000 records, it works fine but when the record get increases say 4000 the data in the model is coming as null in the handler. Is there any data size limit for the Spring to bind the value to model ?
To your first question, the approach which you are following is correct.
For Export Excel functionality, you can pass the same JSON string which you stored in a hidden variable. And DE-serialize the JSON string to the data. Since JSON is just a string, there is no such limit on Ajax form data

In Talend, how do you keep input values provided to tSoap so that you can use them with the Soap response?

I have a Talend Job that currently does the following:
Input CSV --Main--> tMap --Output--> tSoap --Main--> Output CSV
The input CSV has
ID and TYPE as input columns.
The Map creates a Soap XML (String) message using the ID from the CSV and passes that String to the tSoap component.
The tSoap component fires the web request, which sends the response to the next component. That data is then written to CSV.
The problem is that TYPE from the input CSV is not passed through to amalgamate with the SOAP response data. Only the response data seems accessible.
I've had a look at tBufferInput / tBufferOutput and tFlowToIterate but they seem to work in scenarios where the tSoap component does not depend on an input from the main flow.
Does anyone know which components can be used to achieve the amalgamation?
Thank you
If you output the data you need to reuse to a tHashOutput component you should be able to rejoin your data with the response output from tSoap assuming there's some natural join element from the response.
I solved this in the end by:
Placing between the output from the tMap and the input to the tSoap, a new component - tSetGlobalVar
Inside tSetGlobalVar, you can then create a new row, which maps an input column (Value) to a named variable that you specify as the 'Key'.
E.g. Key = "ID", Value = row11.ID
The output from tSetGlobalVar then goes into the tSoap component.
The output from tSoap goes into a new tMap.
Inside this new tMap is the Body column from the previous tSoap component which maps to an output column. To access the stored "ID" variable for the current flow/iteration, I created a new output column, and instead of mapping any columns from the inputs, used (String)globalMap.get("ID"); which would insert the value back into the flow.

How to get values in this json object in ext js?

I try to get values and put in a textfield. return json is ;
Object { info=[1]}
in this
info[Object { name="name", another ="another"}]
clearly ;
{"info":[{"name":"name","another":"another"}]}
i do ;
var resp = Ext.decode(response.responseText);
txtName.setValue(resp.info);
and in text field it shown [Object object]
How to i get name and another values?
Because response.info is a root level node in your response which contains an array of objects:
[{"name":"name","another":"another"}]
So to use a value from this object in the text box (as it needs a string value) you need to access the object in this array and then extract the value from whichever key you want so to get the name value in the text field you would use:
txtName.setValue(resp.info[0].name);
As a side note, usually you would use an ExtJS Store with a proxy configured to retrieve and store data from the server (if returned in this type of JSON like structure). On the store config you would configure the root property to the tell the store reader which named property in the response contains the data. So in this case 'info' is the root where your data can then be found. The store reader would then loop through the objects in the array and create records for each in the store for the rest of the application to use.

ServiceNow - JSON Web Service, display related tables

I'm working on a C# program that retrieves data from a ServiceNow database and converts that data into C# .NET objects. I'm using the JSON Web Service to return my data in JSON format.
What I want to achieve is as follows: If there is a relational mapping between a value (for
example: I have a table called Company, where CEO is not a TEXT field but an sys_id to a Employee Table) I want to be able to output that data not with an sys_id (or just displaying the name property by using the 'displayvariable' parameter) but by an object displayed in JSON.
This means that the value of a property should be an object in JSON instead of just a single value.
A few examples:
// I don't want the JSON like this
{"Company":{"CEO":"b181e841c9212c008aeb36850331fab2"}}
// Or by displaying the name of the sys_id table
{"Company":{"CEO":"James Henderson" }}
// I want the data as follows, so I can have all the data I need inside a single JSON record.
{"Company":{"CEO":{"name":"James Henderson", "age":34, "sex":"male", "office":"SBN Left Floor 23"}}}
From reading the documentation I couldn't find anything in the JSON Web Service that allowed me to display the information like this nor
find any other alternative. It should have something to do with joining the tables and displaying it all in the right format.
I have been using SNC for almost three years and have not found you can automatically join tables in a web service. Your best option would be to use a scripted web service which possibly takes a query parameter and table parameter. Then you can json serialized your result as you see fit.
Or, another option would be to generate a new processor that will traverse the GlideRecord object. The ?JSON parameter you pass in to the URL is merely a flag to pass your request to a particular processor. Unfortunately the OOB one I believe is a Java class not a JS script, so you would need to write a script much like I mentioned earlier to traverse the object path serializing the object graph as far down as your want to go.