I don’t think 4D can type {additional_information:[Check / Money order]}… It
can’t be text because it isn’t quoted, it can’t be a text array. A text array
would be formatted like this ["Check / Money order”] so I’m not surprised that
4D is returning null.
4D object are not JSON objects, just similar.
Neil
> On Aug 9, 2019, at 1:11 PM, Nigel Greenlee via 4D_Tech <[email protected]>
> wrote:
>
> Hi.
>
> I am looking for a better solution than what i currently have..this has
> probably been encountered by others.
>
> I am creating some code on 4D V17 but I can not really use collections or
> .notation as this is going to get deployed on V16 and will not be upgraded
> for at least a few months(and i am not sure that would solve this problem
> anyway).
>
> I am retrieving an object from a connected source(Magento FYI)... from the
> object we get a sub entity object and that sub entity may itself contain a
> subentity etc etc(we are mapping data to go into our system). I am trying to
> write something agnostic and generic so i am not expecting to ‘hard wire’ any
> behaviour for a specific entity into the code that extracts the data.
>
> So at each ‘entity’ level I get the attribute names and types. where the
> attribute type is 38 or 42 this is a ‘sub entity’ so we are going to get that
> object and call back into the same code to go down a level.
>
> Now on V16 of course i wont get a type 42 but actually a type 42 SHOULD(as i
> understand it) mean the object (element) contains an object and that object
> SHOULD be a ‘complex’ object and my understanding is that should be an array
> of objects(else it would not be a collection)? Have i misunderstood that?
>
> So i should be able to write(for a type 42 attribute)..
>
> OB Get Array($ObjData;$attributeName;$aObjSubObject) //Where $aObjSubObject
> is an Array Object
>
> (and mostly that works)….
>
>
> However
>
> I am finding a case where
> Attribute Type =42
> Attribute Name=“additional_information"
>
> ...and the object looks like this:-
>
> {account_status:null,additional_information:[Check / Money
> order],amount_ordered...
>
> in that object ‘additional_information’ looks like
> additional_information:[Check / Money order]
>
> which as any JSON/4D object fool can see(LOL) is an array type object(of text
> in this case) not a collection of objects. When i retreive it as an array of
> objects I get the correct number of elements(1) but the value of the
> element(1) is NULL because its not [{…
>
>
> indeed if I write:-
>
>
> OB Get Array($ObjData;$attributeName;$aTextarray) //Where $aTextarray is an
> Array of type text
>
> This indeed gets the values from the object..which would be absolutely
> fine(and a work around might be to get both, as neither error, and then look
> at whether the values in the object array are null and if they are then its
> an array of values).
>
> So my question is this. What is a better way to find out what the type of
> data in the attribute is? What am I missing in my understanding of the
> structure of an/this object.
>
> OB Get type returns 42(matching the attribute type of course!). It feels like
> the attribute is Shrodingers Cat- existing as a collection of cats and not a
> collection of cats at the same time.
>
>
> Nigel Greenlee
>
>
>
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> Archive: http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub: mailto:[email protected]
> **********************************************************************
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive: http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub: mailto:[email protected]
**********************************************************************