Announcement

As of April 17, 2018, this site is now in read-only mode. To start new Blackbaud Developer’s discussions, you will find Developer Discussions in the Blackbaud CRM Community.

To post or respond to Blackbaud Community discussions, you will have to login using a www.blackbaud.com login. Learn how to login here. If you have questions or need assistance, please email community@blackbaud.com.

1.7k questions

3.2k answers

401 users

Categories

1.7k questions

3.2k answers

401 users

I would like to create a data form extension for an existing edit form. In truth I would ideally like to simply display some information about the data but I figured that I get it onto the form I can create my own UI model that would make the field read only. These values get set when the user runs an addin on the data on the form or when the form is saved.

As a proof of concept I have managed to get the data onto the corresponding add form (even though the fields will never be populated or will never need to be populated at this stage) but I am struggling to get the fields onto my edit form.

Whenever I load the spec I get the error message:

This form is not a valid extension of data form
5909a7f4-8428-4200-9937-e5b006348c6a. When extending 'Edit' or 'View'
data forms, make sure the record type of the extension matches (or is
compatible with) the record of the form being extended. When
extending 'Add' data forms, make sure the context record type of the
extension matches the record type of the form being extended. In all
cases, make sure that the data form modes match.

Can anybody enlighten me as to what is required to get this to work?

Thanks

David

asked by zeiddev (513 points)

1 Answer

 
Best answer

It sounds like the RecordType attribute of your extension does not match the same attribute on the form you are extending. Can you confirm if these match and if they do match what are they?

answered by danielcooke (3.5k points)
selected by zeiddev
I thought that I had tried them matching but I must have mispelt something as I am no longer getting that error message. However the extension does not appear on the form.

I am trying to extend the Financial Institution Edit Form 3. I used Financial Institution as my record type.
You may want to try resetting your web server.  I'm not sure if we cache extensions on forms or not.  Another thing to try would see if there are any errors happening either when debugging or perhaps in your web server's event log when you try to load the form.
So there is an error in the logs that says that "The record specified does not exist for this data form. ".

Here is some info:


Request information:
    Request URL: http://zeiddev/bbec/uimodel/UIModelingService.ashx?action=createDataFormSession&databaseName=BBInfinity&dataFormInstanceId=5909a7f4-8428-4200-9937-e5b006348c6a&recordId=bd2be976-c610-4486-8299-68ef5aa6b8a9&_ts=1384540148981
    Request path: /bbec/uimodel/UIModelingService.ashx
    User host address: fe80::1a7:e2ec:4e0b:1401Full
    User: ZEIDDEV\David
    Is authenticated: True
    Authentication Type: NTLM
    Thread account name: NT AUTHORITY\NETWORK SERVICE
 
Custom event details:
    ServiceRequest type: DataFormLoadRequest
    Database key: BBInfinity
    Client application: WebShell
    CorrelationID: 4e55302d-8506-43f6-807f-fe7e3ce13777
    Request Created: 11/15/2013 6:29:08 PM

AppFx Request Details:
    FormID: 5909a7f4-8428-4200-9937-e5b006348c6a
    RecordID: bd2be976-c610-4486-8299-68ef5aa6b8a9
    ContextRecordID:
    IncludeMetaData: True

AppFx Feature Details:
    Feature1TypeCode: DataFormInstance
    Feature1Id: 5909a7f4-8428-4200-9937-e5b006348c6a
    RecordId: bd2be976-c610-4486-8299-68ef5aa6b8a9
    Trace Category: Warning


One thing that I noticed is that there is no context id. I am not really sure how the edit form can determine which record from the extension it should read. Where is the link made other than when you add the record. There is no context defined on the edit spec.
For edit forms it should be using the RecordID.  Assuming you wrote SQL does your extension code work with that ID above (bd2be976-c610-4486-8299-68ef5aa6b8a9)?  Also do you return @DATALOADED set to 1?
My SQL selects from my custom table where ID = @ID. Do I need to change it so that it looks at the foreign key? i.e. FINANCIALINSTITUTIONID = @ID?

I sort of assumed that you should be loading data for editing using the primary key but given that I am not editing my data directly it would make sense to use the foreign key rather than the primary key.
When I made that change it worked and brought up the values. Somehow that does not feel like a clean solution though.

What happens should I wish to have a separate edit form for my data? Wouldn't that be better served by editing it using the primary key (although given it has a one to one relationship with the other table it shouldn't matter)
Right but you are editing your extension data in relation to the context of the extended form.  The extended form is loaded with its context (a financial institution in this case) and has no way to know about your extended data until you load it based on that context.  If you were directly editing your extended data on a form you would pass the context of your extended data to that form directly
That makes sense. Thanks again for your help.
...