none
How to get the success reponse of RopExpandRow? RRS feed

  • Question

  • I called RopExpandRow requst, the error code 0x000004F9(NoExpandLeafRow) is returned, which means "Leaf rows cannot be expanded; only category header rows can be expanded.(ecLeaf)"

    I set the CategoryId as 0xbd88f10000000001 in request buffer referred to section 4.5.2.1 in MS-OXCTABL.

    Something wrong with the CategoryId?  The error code says it's leaf rows, how to get the header rows' CategoryId?

    Thanks in advance.

     

    Monday, April 12, 2010 11:23 AM

Answers

  • Jack, I will try to be more specific on how to get that value. Take a look at this section…

     

    4.5.3.2 Server Response to Client Request

    This section contains an example response from the server to a RopQueryRows request where the messages are grouped by category. The RowData array begins at byte offset 0x09. Each Row begins with a HasError byte and a ErrorType byte. Following that, it contains a ColumnArray of properties. You will want to look for the 4-byte property tag0x674D0014 (PidTagInstID ) followed by an 8-byte value which will be the CategoryID.

     

    Please let me know if that answers your question or if you need any additional details.


    Josh Curry (jcurry) | Sr. Support Escalation Engineer | US-CSS DSC Protocols Team
    Friday, April 16, 2010 9:18 PM
    Moderator

All replies

  • Fannie,

      Thanks for your question.  One of  our team member will work on your question and post the response when investigation is done.

    Thanks!

     

     

     


    Hongwei Sun -MSFT
    Monday, April 12, 2010 3:01 PM
  • Fannie, I have finished my investigation regarding your inquiry about the error that you are receiving in the RopExpandRow response.

     

    The CategoryId that you are using, 0xbd88f10000000001, that you took from the example in the MS-OXCTABL document in section 4.5.2.1 should not be used for a real server request. You will need to use a valid CategoryId in your RopExpandRow request.

     

    Section 2.2.2.17.1.2 contains the following definition for CategoryId: This 8-BYTE field specifies the category to be expanded. This field is set to the value of the PidTagInstID property of the category's header row.

     

    PidTagInstID is defined in section 2.844 of MS-OXPROPS.

     

    MS-OXCTABL 3.1.4.2 Querying the Table:

    When a higher layer or the user requests tabular data from a table, the client MUST retrieve that information using RopQueryRows or RopFindRow.

    ...

    If the client is going to expand and collapse categories, it MUST include the PidTagInstID property in the PropertyTags field of the RopSetColumns request, and use the value of that property in RopExpandRow, RopCollapseRow, and RopGetCollapseState requests.

     

    Section 3.2.5.5, Processing RopQueryRows states that "RopSetColumns MUST be sent on the table prior to sending RopQueryRows. The columns sent in the response for each row MUST be the ones specified on RopSetColumns."

     

    See section 4.2 for an example of using RopSetColumns to set the columns on a table. Section 4.2.1 contains a list of the PropertyTag values including PidTagInstID, 0x674d0014.

     

    See Section 4.5.3 for an example of using RopQueryRows where category grouping is used. The RowData array contains one or more PropertyRow structures which will contain the PidTagInstID PropertyTag.


    Josh Curry (jcurry) | Sr. Support Escalation Engineer | US-CSS DSC Protocols Team
    Monday, April 12, 2010 8:21 PM
    Moderator
  • Thank you JCurry!  I have the same question and I have read this. It's very helpful.  I have another question.

    "If the client is going to expand and collapse categories, it MUST include the PidTagInstID property in the PropertyTags field of the RopSetColumns request, and use the value of that property in RopExpandRow, RopCollapseRow, and RopGetCollapseState requests."

    how can I get "the value of that property "

     

    Could you please help me?

    Wednesday, April 14, 2010 6:06 AM
  • Thank you JCurry!  I have the same question and I have read this. It's very helpful.  I have another question.

    "If the client is going to expand and collapse categories, it MUST include the PidTagInstID property in the PropertyTags field of the RopSetColumns request, and use the value of that property in RopExpandRow, RopCollapseRow, and RopGetCollapseState requests."

    how can I get "the value of that property "

    Could you please help me?

    Wednesday, April 14, 2010 6:06 AM
  • Jack, I will try to be more specific on how to get that value. Take a look at this section…

     

    4.5.3.2 Server Response to Client Request

    This section contains an example response from the server to a RopQueryRows request where the messages are grouped by category. The RowData array begins at byte offset 0x09. Each Row begins with a HasError byte and a ErrorType byte. Following that, it contains a ColumnArray of properties. You will want to look for the 4-byte property tag0x674D0014 (PidTagInstID ) followed by an 8-byte value which will be the CategoryID.

     

    Please let me know if that answers your question or if you need any additional details.


    Josh Curry (jcurry) | Sr. Support Escalation Engineer | US-CSS DSC Protocols Team
    Friday, April 16, 2010 9:18 PM
    Moderator
  • Thank you very much. The issue was fixed. Thanks again.
    Monday, May 10, 2010 3:37 AM