3.1.4.1.2.1 DecodeEntityInstanceId

The DecodeEntityInstanceId element specifies the input data for the DecodeEntityInstanceId WSDL operation.

 <xs:element name="DecodeEntityInstanceId" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:complexType>
     <xs:sequence>
       <xs:element minOccurs="0" maxOccurs="1" name="bstrSiteId" type="xs:string"/>
       <xs:element minOccurs="0" maxOccurs="1" name="bstrEntityInstanceId" type="xs:string"/>
       <xs:element minOccurs="1" maxOccurs="1" name="fFormatAsXml" type="xs:boolean"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

bstrSiteId: MUST be ignored by the protocol server.

bstrEntityInstanceId: the value of the serialized reference to the EntityInstance. The value MUST be present. The format of the reference to the EntityInstance MUST be as follows:

  • The string MUST begin with the serialized length of the Entity namespace.

  • The string MUST then contain a colon (:).

  • The string MUST then contain the Entity namespace.

  • The string MUST then contain the serialized length of the Entity name.

  • The string MUST then contain a colon (:).

  • The string MUST then contain the Entity name.

  • The string MUST then contain the serialized length of the name of a Finder contained in the Entity.

  • The string MUST then contain a colon (:).

  • The string MUST then contain the Finder name.

  • The string MUST then contain the serialized length of the name of a LobSystemInstance contained in the same LobSystem as the Entity identified by the Entity namespace and Entity name.

  • The string MUST then contain a colon (:).

  • The string MUST then contain the LobSystemInstance name.

  • The rest of the reference to the EntityInstance MUST consist of a serialization of the values and types of the data values of the EntityInstance Identifiers:

    • The serialization of the data values of the EntityInstance Identifiers MUST be composed of the concatenation of the encodings of the data value of each EntityInstance Identifier and type.

    • Each data value of an EntityInstance Identifier MUST be encoded as follows:

      • "A", if the common language runtime (CLR) type of the data value of the EntityInstance Identifier is "System.Boolean", and the value is equal to true.

      • "a", if the CLR type of the data value of the EntityInstance Identifier is "System.Boolean", and the value is equal to false.

      • "b", if the CLR type of the data value of the EntityInstance Identifier is "System.Byte", followed by the base64 encoding of the value. The base64 encoding in this and subsequent descriptions of the data value of the EntityInstance Identifier encoding MUST be performed according to [RFC4648].

      • "C", if the CLR type of the data value of the EntityInstance Identifier is "System.Char", followed by the base64 encoding of the Char value.

      • "D", if the CLR type of the data value of the EntityInstance Identifier is System.DateTime, followed by a character representing the CLR DateTimeKind of the data value and then followed by the base64 encoding of the binary representation of the DateTime value.

        • The character representing the DateTimeKind of the data value MUST be obtained as follows:

          • "a", if the CLR DateTimeKind is "Unspecified".

          • "b", if the CLR DateTimeKind is "UTC".

          • "c", if the CLR DateTimeKind is "Local".

        • The binary representation of the DateTime value MUST be obtained as follows:

          • Obtain the Ticks representation of the DateTime value, as the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.

          • If the DateTime is not local, its binary representation MUST be equal to the Ticks value obtained in the previous step.

          • If the DateTime is local, obtain the UTC equivalent Ticks representation by adjusting for the TimeZone of the DateTime.

          • If the number of Ticks is negative, add 4611686018427387904.

          • The binary representation MUST be the result of the bitwise OR between the resulting number of Ticks and -9223372036854775808.

      • "E", if the CLR type of the data value of the EntityInstance Identifier is System.Decimal, followed by the base64 encoding of the length of the base64 encoding of the value, followed by the base64 encoding of the string representation of the value.

      • "F", if the CLR type of the data value of the EntityInstance Identifier is "System.Double", followed by the base64 encoding of the value.

      • "G", if the CLR type of the data value of the EntityInstance Identifier is "System.Guid", followed by the base64 encoding of the string representation of the value.

      • "H", if the CLR type of the data value of the EntityInstance Identifier is "System.Int16", followed by the base64 encoding of the value.

      • "i", if the CLR type of the data value of the EntityInstance Identifier is "System.Int32", followed by the base64 encoding of the value.

      • "I", if the CLR type of the data value of the EntityInstance Identifier is "System.Int64", followed by the base64 encoding of the value.

      • "h", if the CLR type of the data value of the EntityInstance Identifier is "System.SByte", followed by the base64 encoding of the arithmetic sum between the value and the constant value 128.

      • "f", if the CLR type of the data value of the EntityInstance Identifier is "System.Single", followed by the base64 encoding of the value.

      • "S", if the CLR type of the data value of the EntityInstance Identifier is "System.String", followed by the base64 encoding of the length of the base64 encoding of the value, followed by the base64 encoding of the value.

      • "d", if the CLR type of the data value of the EntityInstance Identifier is "System.TimeSpan", followed by the base64 encoding of the Ticks representation of the value. The Ticks representation of the value MUST be the number of 100 nanosecond intervals that are equivalent in duration to the value.

      • "B", if the CLR type of the data value of the EntityInstance Identifier is "Sytem.UInt16", followed by the base64 encoding of the value.

      • "u", if the CLR type of the data value of the EntityInstance Identifier is "System.UInt32", followed by the base64 encoding of the value.

      • "U", if the CLR type of the data value of the EntityInstance Identifier is "System.UInt64", followed by the base64 encoding of the value.

fFormatAsXml: Flag indicating whether returned EntityInstance Identifiers of CLR type System.DateTime, if any, need to be formatted according to CLR serialization rules or according to [ISO-8601]. The value MUST be present.

  • If fFormatAsXml is true, any returned EntityInstance Identifiers of CLR type "System.DateTime" MUST be represented according to the extended format described in [ISO-8601].

  • If fFormatAsXml is false, any returned EntityInstance Identifiers of CLR type "System.DateTime" MUST be encoded as the string representation of the Ticks represented by the data value of the EntityInstance Identifier. The Ticks represented by a value of CLR type "System.DateTime" MUST be the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.