Editing DDL DataSource does not update existing populate methods


Badge +8


 

Symptoms


Editing DDL DataSource does not update existing populate methods
 

Diagnoses


When changing the SmO method that populates a DDL(on the same SmO) the existing populate methods are not updated. The existing populate DDL actions must be deleted and recreated in order for the data in the DDL to be changed.

High level repro steps.

1. Create a SmO with two list methods that return different rows (we are using a table's list method and then a SPROC that takes an input param to filter the results)
2. Create a view, add a DDL the uses the table List method on the SmO.
3. Delete the populate in the initialize routine
4. Create another rule that is used to populate the DDL and manually create and configure the populate action (our's is based on another DDL Changing)
5. Submit, Check-in and run the view

6. Edit the view and Edit the DDL datasource picking the second method on the SmO
7. Manually edit the populate action created in 4, note that the input parameters have not been updated to match the SPROC. At runtime this is still running the old SmO method even though this is not what is configured on the data source.

For reference we were passing in the same value in both cases, but went from filtering a table directly to using the following logic in a SPROC to get the first record for a given category of records. (I don't think the specifics or the sproc are relevant, but in order to see this it may be necessary to get two different rowsets passing in the same parameter.

CREATE PROCEDURE pListSlotsForSlotSpecificDDL
@PageTemplateID INT
AS
BEGIN
SET NOCOUNT ON

SELECT ID, Location, Sort
FROM dbo.Slot
WHERE ID IN (
SELECT MIN(ID) AS MinID
FROM dbo.Slot
WHERE PageTemplateID = @PageTemplateID
GROUP BY Location
)
END
 

Resolution

This issue has been confirmed as a bug and has been logged. The workaround that has been used is the preferred workaround for this issue. The workaround is to remove the button click rule, and then reapply the rule, and the proper bindings will then render.




 

0 replies

Be the first to reply!

Reply