Overview
This article outlines the process for transferring WebApps from the Syniti Stewardship Tier (SST) to the Syniti Knowledge Platform (SKP) Construct module. The process must be completed with specific queries (included in this article) used to extract the data from the SST to prepare the Excel workbook for the transfer via the Excel Integration capabilities in Construct.
Not all WebApps are able to be transferred to the Construct module because Construct has a limited set of functionality compared to the SST. For example, the MDM applications that are developed and deployed on the SST will not be eligible for transfer at the present time. Please evaluate the WebApp you are trying to migrate against the set of capabilities supported by Construct before attempting the transfer.
General Instructions
The following general steps are required when extracting and preparing the spreadsheet for Excel Integration with the various pages and the Import/Export process supported by Construct:
- NULL values in the Excel spreadsheet must be globally replaced with ‘’ i.e., empty strings. The NULL values will cause a failure in the import process.
- GUID columns that are references within list boxes on the Import pages must be in lower case for the import process to recognize and assign the related component.
- Be aware of the limitations of the Construct module in terms of what it does and doesn’t support based on the framework that was transferred into the SKP. Consider this as to whether the WebApp that you are trying to convert from the SST to Construct will be able to function as expected. Examine whether the Orchestrate functionality available in the SKP and integrated with Construct could be used for background processes, external API calls and the execution of Match, Address Cleansing tasks, etc. to support the WebApp.
- In Construct, the boaUserID column is no longer used to automatically filter the view based on your user ID. Change this column to boaUserEmail for the user-based filtering to work in Construct pages.
Processing Instructions
- Run the queries in this document and copy the output from SQL Server Management Studio to a single Excel Workbook per WebApp. Replace the <INSERT WEBAPP ID> section in each of the queries (below) to ensure you are only extracting the content for the specific WebApp.
- Run a global replace for NULL values across all of the sheets in the Excel Workbook to remove those values and leave those cells with an empty string.
SKP System and Connection Registration
- In the SKP, click the Create asset icon on the Site menu and select System.
- Name the system relevant to your Construct WebApp SQL Server database environment.
- Populate the other attributes as necessary and save the system.
- Click the Connections tab.
- Click the Create connection button.
- Select SQL Server from the Type list box.
- Complete the rest of the connection properties and ensure Construct is selected as at least one of the Usages.
- Select the SKP Connector that will support connectivity to the SQL Server database environment from the SKP Connectors list box.
- Click Save.
- Navigate back to the Home screen of the SKP and select the Construct WebApp (Construct Home) card.
Data Source Registration
- Select Admin > Data Sources in the Navigation pane.
- Click Add.
- Enter a name for the data source in the Data Source Name field and click Save.
- Select the Connection ID you created in steps 7-11 above.
- Select the Connector ID you assigned to the connection above and click Save.
- Click the Test Connection button to ensure the Connection / SKP Connector combination you selected are able to connect to your SQL Server database.
NOTE: You should now have your Data Source registered in Construct. Select the Data Source record you just created and then hover your mouse pointer over the Data Sources title on the page. This displays the GUID of the newly created Data Source in the help window (bottom left). Copy the GUID and paste that into the DataSourceID field in your WebApp export Workbook on the WebApp sheet.
Catalogs and Catalog Phrases Import
- Import the relevant catalog(s) and catalog phrases that are referenced by the WebApp you are about to import.
- Select Admin > Translations > Catalogs in the Navigation pane.
- Click the More Actions gear icon on the Catalogs page and select Excel Integration.
- Click the Import Data tab.
- Click the Click here to browse for your Excel file button and select the file that contains the export of the SST WebApp.
- Select the relevant sheet in the Excel Workbook and change the Data Starts on Row value to 2.
- Click the Import Records button.
- Select Admin > Translations > Catalog > Catalog Phrase in the Navigation menu and repeat steps 20-25 to import the Catalog Phrases for each Catalog/Language combination that was output from the WebApp export process queries.
WebApp Import
- Select Admin > WebApps in the Navigation menu.
- Click the More Actions gear icon on the WebApps page and select Excel Integration.
- Click the Import Data tab.
- Click the Click here to browse for your Excel file button and select the file that contains the export of the SST WebApp.
- Select the relevant sheet (WebApp) in the Excel Workbook and change the Data Starts on Row value to 2.
- Click the Import Records button.
NOTE: You should now have your WebApp imported into the list of available WebApps in Construct. There should be no pages, menus or groups associated with your WebApp currently.
Menus Import
- Navigate to the Menus page.
- Click the More Actions gear icon on the Menus page and select Excel Integration.
- Click the Import Data tab.
- Click the Click here to browse for your Excel file button and select the file that contains the export of the SST WebApp.
- Select the relevant sheet in the Excel Workbook and change the Data Starts on Row value to 2.
- Click the Import Records button.
Other Imports via individual pages
- Repeat steps 34 through 38 on the Pages page.
- Repeat steps 34 through 38 on the WebApp Catalogs page.
- Repeat steps 34 through 38 on the Groups page.
Import via Import / Export tab on WebApp Vertical View
- Navigate to the Vertical View of the WebApps page on the WebApp you created in step 27.
- Click the Import / Export tab.
- Click the Page Columns icon.
- Click the More Actions gear icon on the Page Columns page and select Excel Integration.
- Click the Import Data tab.
- Click the Click here to browse for your Excel file button and select the file that contains the export of the SST WebApp.
- Select the relevant sheet in the Excel Workbook and change the Data Starts on Row value to 2.
- Click the Import Records button.
- Review the resulting import log.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Page Specific Catalogs icon.
- Repeat steps 45 through 50.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Page Specific Catalogs Translations icon.
- Repeat steps 45 through 50.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Menu Links icon.
- Repeat steps 45 through 50.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Group Pages icon.
- Repeat steps 45 through 50.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Page Events icon.
- Repeat steps 45 through 50.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Page Event Validation Rules icon.
- Repeat steps 45 through 50.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Page Event Business Rules icon.
- Repeat steps 45 through 50.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Page Event Parameters icon.
- Repeat steps 45 through 50.
- Navigate to the Import / Export tab on the WebApp’s Vertical View page.
- Click the Page Help icon.
- Repeat steps 45 through 50.
Review WebApp and setup Site Menu
- Review your WebApp and make changes as necessary to the Validation and Business Rules to switch to utilizing the SKP Orchestrate Workflow functionality for background execution of Stored Procedures and calling other Task Types in Orchestrate (e.g. Match, Global Address Validation, Replicate, Syniti Connect, etc).
- To make the WebApp available from the main site menu, select Admin > Configuration > Site Menu in the Navigation menu.
- Click the Add button and add an entry with the Priority set to the position you want the WebApp link to appear in the Site menu, and provide a Label that will be used on the Site menu. Select the starting page that you want the user to be navigated to in your WebApp when they select the Site menu item.
Extract Queries
All of the following queries must be executed against the Cransoft database on the source SST instance that you are importing the WebApp in from.
WebApp
SELECT WebAppName,
NULL as DataSourceID,
EnforceStrictNaming,
TablePrefixSize,
DateFormatPattern,
TimeFormatPattern,
[Version],
ReleaseDate,
TrackPagePhrases,
DocumentationLocation,
TableFilter,
HorizontalFilter,
VerticalFilter,
ListFilter,
ProcedureFilter,
ValidationFilter,
EventParameterFilter,
DefaultsFilter,
UserControlFilter,
PageControlFilter,
DataControlFilter,
ListControlFilter,
ParameterFilter,
ToolbarFilter,
TooltipFilter,
WatermarkFilter,
HoverFilter
FROM WebApp
WHERE WebAppID = '<INSERT WEBAPP ID>'
Translations - Catalogs
Run the following query to see which Catalogs are referenced by your WebApps that you are going to import.
SELECT CatalogID from WebAppCatalog
where WebAppID = '<INSERT WEBAPP ID>'
For each CatalogID returned run the following query:
NOTE: Any Catalogs referenced by your WebApp need to be ingested into Construct prior to Web Application import. Copy the output of the below query into your Excel Workbook.
SELECT [CatalogID]
,[Name]
,[Description]
FROM [CranSoft].[dbo].[Catalog]
where UserControlled = 1
and SystemProvided = 0
And CatalogID in (<INSERT CATALOGID VALUES FROM PREVIOUS QUERY>)
Translations - Catalog - Phrases
Run the following query for each Catalog found in the Translation - Catalogs section above.
SELECT DISTINCT Catalog.CatalogID,
Language.LanguageID,
Language.Language,
Catalog.Name
FROM dbo.CatalogLanguagePhrase
INNER JOIN dbo.Language
ON dbo.CatalogLanguagePhrase.LanguageID = dbo.Language.LanguageID
INNER JOIN dbo.Catalog
ON dbo.CatalogLanguagePhrase.CatalogID = dbo.Catalog.CatalogID
WHERE Catalog.CatalogID = <INSERT CATALOGID HERE>
NOTE: [REPEATING QUERIES] For each record returned above, note the combination of CatalogID and LanguageID, and run the following query to pass in each combination of CatalogID and LanguageID from above. Copy the results of each query execution into separate Translation - Catalog - Phrases sheets in the WebApp export Workbook.
SELECT dbo.CatalogLanguagePhrase.Phrase,
dbo.CatalogLanguagePhrase.PhraseOut,
dbo.CatalogLanguagePhrase.DynamicHelp,
dbo.Catalog.[Name] AS CatalogName,
dbo.Language.Language AS LanguageName
FROM dbo.CatalogLanguagePhrase
INNER JOIN dbo.Language
ON dbo.CatalogLanguagePhrase.LanguageID = dbo.Language.LanguageID
INNER JOIN dbo.Catalog
ON dbo.CatalogLanguagePhrase.CatalogID = dbo.Catalog.CatalogID
WHERE CatalogLanguagePhrase.CatalogID = <INSERT CATALOG ID HERE>
AND Language.LanguageID = <INSERT LANGUAGE ID HERE>
Menu
SELECT dbo.Menu.MenuID,
dbo.Menu.MenuName
FROM dbo.Menu
INNER JOIN dbo.WebApp
ON dbo.Menu.WebAppID = dbo.WebApp.WebAppID
and dbo.Menu.WebAppID = '<INSERT WEBAPP ID>'
INNER JOIN dbo.webMenuCV
ON dbo.Menu.MenuID = dbo.webMenuCV.MenuID
Page
SELECT dbo.Page.PageID,
dbo.Page.Description,
dbo.Page.PageType,
dbo.Page.[Table],
case dbo.Page.SupportDelete when 1 then 'TRUE' else 'FALSE' end as SupportDelete,
dbo.Page.InsertMethod,
dbo.Page.UpdateMethod,
dbo.Page.Priority,
lower(dbo.Page.VerticalMenuID) as VerticalMenuID,
lower(dbo.Page.CatalogID) as CatalogID,
dbo.Page.HorizontalView,
dbo.Page.VerticalView,
dbo.Page.DefaultsView,
case dbo.Page.MaintainPageLocation when 1 then 'TRUE' else 'FALSE' end as MaintainPageLocation,
case dbo.Page.SupportPersistentInsert when 1 then 'TRUE' else 'FALSE' end as SupportPersistentInsert,
dbo.Page.DefaultPageMode,
case dbo.Page.SupportDirectUpdate when 1 then 'TRUE' else 'FALSE' end as SupportDirectUpdate,
case dbo.Page.SupportFullPageUpdate when 1 then 'TRUE' else 'FALSE' end as SupportFullPageUpdate,
case dbo.Page.SupportDownload when 1 then 'TRUE' else 'FALSE' end as SupportDownload,
dbo.Page.OrderBy,
dbo.Page.RefreshRate,
dbo.Page.HorizontalTitlebar,
dbo.Page.VerticalTitlebar,
dbo.Page.ShortDescription,
dbo.Page.HoverView,
dbo.Page.PageControlView,
dbo.Page.UserControlView,
dbo.Page.DataControlView,
dbo.Page.ParameterView,
dbo.Page.ToolbarView,
case dbo.Page.ExcelDataTypeHeader when 1 then 'TRUE' else 'FALSE' end as ExcelDataTypeHeader,
Case dbo.Page.ExcelHelpTextHeader when 1 then 'TRUE' else 'FALSE' end as ExcelHelpTextHeader,
dbo.Page.ExcelColumnNameBackground,
dbo.Page.ExcelColumnNameForeground,
dbo.Page.ExcelTranslatedNameBackground,
dbo.Page.ExcelTranslatedNameForeground,
dbo.Page.ExcelDataTypeBackground,
dbo.Page.ExcelDataTypeForeground,
dbo.Page.ExcelHelpTextBackground,
dbo.Page.ExcelHelpTextForeground,
dbo.Page.ExcelInstructions,
case dbo.Page.EnableExcelIntegration when '1' then 'TRUE' else 'FALSE' end as EnableExcelIntegration,
case dbo.Page.ExcelHelpTextAsComment when 1 then 'TRUE' else 'FALSE' end as ExcelHelpTextAsComment,
lower(dbo.LayoutFrame.DefaultPageID) as HDDefaultPageID,
dbo.LayoutFrame.InitialPageColumn as HDInitialPageColumn,
LayoutFrame2.Partition as HDPartition
FROM dbo.Page
INNER JOIN dbo.WebApp
ON dbo.Page.WebAppID = dbo.WebApp.WebAppID
and dbo.Page.WebAppID = '<INSERT WEBAPP ID>'
LEFT OUTER JOIN dbo.PageType
ON dbo.Page.PageType = dbo.PageType.PageType
LEFT OUTER JOIN dbo.webPageCV
ON dbo.Page.PageID = dbo.webPageCV.PageID
LEFT OUTER JOIN dbo.webPage_HeaderDetailPartitionSel
ON dbo.Page.PageID = dbo.webPage_HeaderDetailPartitionSel.PageID
LEFT OUTER JOIN dbo.LayoutFrame
ON dbo.webPage_HeaderDetailPartitionSel.LayoutID = dbo.LayoutFrame.LayoutID
and dbo.LayoutFrame.DefaultPageID is not null
LEFT OUTER JOIN dbo.LayoutFrame as LayoutFrame2
ON dbo.webPage_HeaderDetailPartitionSel.LayoutID = LayoutFrame2.LayoutID
and LayoutFrame2.Partition is not null
CROSS JOIN dbo.Param
Catalog
SELECT dbo.WebAppCatalog.Priority,
lower(dbo.WebAppCatalog.CatalogID) as CatalogID
FROM dbo.WebAppCatalog
INNER JOIN dbo.[Catalog]
ON dbo.WebAppCatalog.CatalogID = dbo.[Catalog].CatalogID
and dbo.WebAppCatalog.WebAppID = '<INSERT WEBAPP ID>'
INNER JOIN dbo.WebApp
ON dbo.WebAppCatalog.WebAppID = dbo.WebApp.WebAppID
Group
SELECT dbo.WebAppGroup.GroupID,
dbo.WebAppGroup.GroupName
FROM dbo.WebAppGroup
INNER JOIN dbo.WebApp
ON dbo.WebAppGroup.WebAppID = dbo.WebApp.WebAppID
and dbo.WebApp.WebAppID = '<INSERT WEBAPP ID>'
LEFT OUTER JOIN dbo.webWebAppGroupCV
ON dbo.WebAppGroup.GroupID = dbo.webWebAppGroupCV.GroupID
Page Columns
SELECT lower(dbo.PageColumn.PageID) as PageID,
dbo.PageColumn.[Column],
dbo.PageColumn.ViewType,
dbo.PageColumn.Control,
dbo.PageColumn.ListSource,
dbo.PageColumn.ControlStatus,
dbo.PageColumn.[Default],
dbo.PageColumn.[Format],
dbo.PageColumn.CheckboxFormatID,
case dbo.PageColumn.Collapse when 1 then 'TRUE' else 'FALSE' end as Collapse,
case dbo.PageColumn.Total when 1 then 'TRUE' else 'FALSE' end as Total,
LOWER(dbo.PageColumn.ImageID) as ImageID,
case dbo.PageColumn.ConsiderValid when 1 then 'TRUE' else 'FALSE' end as ConsiderValid,
dbo.PageColumn.ListDisplayField,
dbo.PageColumn.ListValueField,
dbo.PageColumn.ListWhereClause,
dbo.PageColumn.ListAllowInsert,
lower(dbo.PageColumn.ListAllowInsertPageID) as ListAllowInsertPageID,
case dbo.PageColumn.ListFilter when 1 then 'TRUE' else 'FALSE' end as ListFilter,
case dbo.PageColumn.ListUnique when 1 then 'TRUE' else 'FALSE' end as ListUnique,
case dbo.PageColumn.[Key] when 1 then 'TRUE' else 'FALSE' end as [Key],
dbo.PageColumn.[Required],
case dbo.PageColumn.AllowSpace when 1 then 'TRUE' else 'FALSE' end as AllowSpace,
case dbo.PageColumn.DynamicImage when 1 then 'TRUE' else 'FALSE' end as DynamicImage,
lower(dbo.PageColumn.LinkToPageID) as LinkToPageID,
dbo.PageColumn.LinkToPageMode,
dbo.PageColumn.LinkToPageModeControl,
case dbo.PageColumn.InheritValidations when 1 then 'TRUE' else 'FALSE' end as InheritValidations,
dbo.PageColumn.DynamicLinkType,
case dbo.PageColumn.DisplayNullAsZero when 1 then 'TRUE' else 'FALSE' end as DisplayNullAsZero,
dbo.PageColumn.BindingFieldNames,
dbo.PageColumn.SharedFieldNames,
dbo.PageColumn.ListOrderBy,
case dbo.PageColumn.InvokeOnInsert when 1 then 'TRUE' else 'FALSE' end as InvokeOnInsert,
lower(dbo.PageColumn.CurrencyLocaleID) as CurrencyLocaleID,
dbo.PageColumn.NumericScale,
case dbo.PageColumn.DisplayThousandsSeparator when 1 then 'TRUE' else 'FALSE' end as DisplayThousandsSeparator,
dbo.PageColumn.ControlStatusField,
case dbo.PageColumn.[Translate] when 1 then 'TRUE' else 'FALSE' end as [Translate],
dbo.PageColumn.ListSelectionField,
dbo.PageColumn.LinkTag,
dbo.PageColumn.HoverView,
lower(dbo.PageColumn.RuntimeDataSourceID) as RuntimeDataSourceID,
dbo.PageColumn.ListControlView,
dbo.PageColumn.SelectFieldNames,
dbo.PageColumn.LinkToMethod,
dbo.PageColumn.DynamicLinkColumn,
lower(dbo.PageColumn.HeaderImageID) as HeaderImageID,
case dbo.PageColumn.ShowInNavigation when 1 then 'TRUE' else 'FALSE' end as ShowInNavigation,
dbo.PageColumn.ColumnSpan,
dbo.PageColumn.RowSpan,
case dbo.PageColumn.LineBreak when 1 then 'TRUE' else 'FALSE' end as LineBreak,
case dbo.PageColumn.AllowMultiRowAction when 1 then 'TRUE' else 'FALSE' end as AllowMultiRowAction,
dbo.PageColumn.DataTooltipView,
dbo.PageColumn.DataTooltipBindingFieldNames,
case dbo.PageColumn.TranslateTooltip when 1 then 'TRUE' else 'FALSE' end as TranslateTooltip,
dbo.PageColumn.WatermarkText,
dbo.PageColumn.WatermarkView,
dbo.PageColumn.WatermarkBindingFieldNames,
case dbo.PageColumn.TranslateWatermark when 1 then 'TRUE' else 'FALSE' end as TranslateWatermark,
dbo.PageColumn.ExcelForegroundColor,
dbo.PageColumn.ExcelBackgroundColor,
FROM dbo.PageColumn
INNER JOIN dbo.Page
ON dbo.PageColumn.PageID = dbo.Page.PageID
and dbo.Page.WebAppID = '<INSERT WEBAPP ID>'
INNER JOIN dbo.WebApp
ON dbo.Page.WebAppID = dbo.WebApp.WebAppID
LEFT OUTER JOIN dbo.Page AS LinkToPage
ON dbo.PageColumn.LinkToPageID = LinkToPage.PageID
LEFT OUTER JOIN dbo.Page AS Page_1
ON dbo.PageColumn.LinkToPageID = Page_1.PageID
CROSS JOIN dbo.Param
Page Specific Catalogs
SELECT Catalog.CatalogID,
lower(Catalog.PageID) as PageID,
[Name],
Catalog.[Description],
UserControlled,
SystemProvided
FROM
dbo.[Catalog]
INNER JOIN dbo.[Page]
ON dbo.[Catalog].PageID = dbo.[Page].PageID
and dbo.[Page].WebAppID = '<INSERT WEBAPP ID>'
WHERE
dbo.[Catalog].UserControlled = 0
AND dbo.[Catalog].SystemProvided = 1
Page Specific Catalog Translations
SELECT lower(dbo.CatalogLanguagePhrase.CatalogID) as CatalogID,
lower(dbo.CatalogLanguagePhrase.LanguageID) as LanguageID,
dbo.CatalogLanguagePhrase.Phrase,
dbo.CatalogLanguagePhrase.PhraseOut,
dbo.CatalogLanguagePhrase.DynamicHelp
FROM
dbo.CatalogLanguagePhrase
INNER JOIN
dbo.[Catalog] ON dbo.[Catalog].CatalogID = dbo.[CatalogLanguagePhrase].CatalogID
INNER JOIN dbo.[Page]
ON dbo.[Catalog].PageID = dbo.[Page].PageID
and dbo.[Page].WebAppID = '<INSERT WEBAPP ID>'
WHERE
dbo.[Catalog].UserControlled = 0
AND dbo.[Catalog].SystemProvided = 1
Menu Links
SELECT MenuLinkID,
lower(dbo.MenuLink.MenuID) as MenuID,
Priority,
lower(LinkToPageID) as LinkToPageID,
Label,
lower(SubmenuID) as SubmenuID,
LinkToURL
FROM dbo.MenuLink
INNER JOIN dbo.[Menu]
ON dbo.[Menu].MenuID = dbo.MenuLink.MenuID
and dbo.[Menu].WebAppID = '<INSERT WEBAPP ID>'
Group Pages
SELECT lower(dbo.WebAppGroupPage.GroupID) as GroupID,
lower(dbo.WebAppGroupPage.PageID) as PageID,
case dbo.WebAppGroupPage.AllowSelect when '1' then 'TRUE' else 'FALSE' end as AllowSelect,
case dbo.WebAppGroupPage.AllowInsert when '1' then 'TRUE' else 'FALSE' end as AllowInsert,
case dbo.WebAppGroupPage.AllowUpdate when '1' then 'TRUE' else 'FALSE' end as AllowUpdate,
case dbo.WebAppGroupPage.AllowDelete when '1' then 'TRUE' else 'FALSE' end as AllowDelete
FROM dbo.WebAppGroupPage
INNER JOIN dbo.WebAppGroup
ON dbo.WebAppGroupPage.GroupID = dbo.WebAppGroup.GroupID
INNER JOIN dbo.Page
ON dbo.WebAppGroupPage.PageID = dbo.Page.PageID
INNER JOIN dbo.WebApp
ON dbo.Page.WebAppID = dbo.WebApp.WebAppID
and dbo.Page.WebAppID = '<INSERT WEBAPP ID>'
Page Events
SELECT lower(dbo.PageEvent.PageID) as PageID,
dbo.PageEvent.Event,
case dbo.PageEvent.Active when '1' then 'TRUE' else 'FALSE' end as Active,
dbo.PageEvent.PreMessage,
dbo.PageEvent.PostMessage,
dbo.PageEvent.Comment,
dbo.PageEvent.TransactionMethod,
dbo.PageEvent.[Function],
case dbo.PageEvent.[Public] when '1' then 'TRUE' else 'FALSE' end as [Public],
dbo.PageEvent.PageViewType,
dbo.PageEvent.EventLevel,
case dbo.PageEvent.SupportBulkExecution when '1' then 'TRUE' else 'FALSE' end as SupportBulkExecution,
case dbo.PageEvent.SupportBulkExecution when '1' then (case dbo.PageEvent.BulkExecutionSkipBusinessRuleDefault when 1 then 'TRUE' else 'FALSE' end) else '' end as BulkExecutionSkipBusinessRuleDefault,
case dbo.PageEvent.SupportBulkExecution when '1' then (case dbo.PageEvent.BulkExecutionAllowSkipBusinessRule when 1 then 'TRUE' else 'FALSE' end) else '' end as BulkExecutionAllowSkipBusinessRule
FROM dbo.PageEvent
INNER JOIN dbo.Page
ON dbo.PageEvent.PageID = dbo.Page.PageID
and dbo.Page.WebAppID = '<INSERT WEBAPP ID>'
INNER JOIN dbo.WebApp
ON dbo.Page.WebAppID = dbo.WebApp.WebAppID
LEFT OUTER JOIN dbo.webPageEventCV
ON dbo.PageEvent.Event = dbo.webPageEventCV.Event
AND dbo.PageEvent.PageID = dbo.webPageEventCV.PageID
Page Event Validation Rules
Severity of Workflow Only needs to be mapped to one of the supported values or it will be excluded on import.
SELECT lower(dbo.PageEventValidation.PageID) as PageID,
dbo.PageEventValidation.Event,
dbo.PageEventValidation.PageValidationID,
dbo.PageEventValidation.Priority,
dbo.PageEventValidation.ValidationType,
dbo.PageEventValidation.[View],
dbo.PageEventValidation.Severity,
dbo.PageEventValidation.Comment,
dbo.PageEventValidation.[Procedure],
case dbo.PageEventValidation.Active when '1' then 'TRUE' else 'FALSE' end as Active,
dbo.PageEventValidation.ExternalReference
FROM dbo.PageEventValidation
INNER JOIN dbo.Page
ON dbo.Page.PageID = dbo.PageEventValidation.PageID
and dbo.Page.WebAppID = '<INSERT WEBAPP ID>'
INNER JOIN dbo.WebApp
ON dbo.WebApp.WebAppID = dbo.Page.WebAppID
LEFT OUTER JOIN dbo.WebAppPlugin AS wap
ON wap.TypeCode = dbo.PageEventValidation.WebAppPluginTypeCode
Page Event Business Rules
SELECT lower(dbo.PageEventRule.PageID) as PageID,
dbo.PageEventRule.Event,
dbo.PageEventRule.PageEventRuleID,
dbo.PageEventRule.Priority,
case dbo.PageEventRule.Active when '1' then 'TRUE' else 'FALSE' end as Active,
dbo.PageEventRule.ProcedureType,
dbo.PageEventRule.[Procedure],
dbo.PageEventRule.Comment,
case dbo.PageEventRule.RunOnValidate when '1' then 'TRUE' else 'FALSE' end as RunOnValidate,
case dbo.PageEventRule.RunOnValidateFail when '1' then 'TRUE' else 'FALSE' end as RunOnValidateFail,
dbo.PageEventRule.[Timeout],
lower(dbo.PageEventRule.WebAppEventPageID) as WebAppEventPageID,
dbo.PageEventRule.WebAppEventName,
dbo.PageEventRule.WebAppEventParameterView,
dbo.PageEventRule.ExternalReference
FROM dbo.PageEventRule
INNER JOIN dbo.Page
ON dbo.PageEventRule.PageID = dbo.Page.PageID
and dbo.Page.WebAppID = '<INSERT WEBAPP ID>'
INNER JOIN dbo.WebApp
ON dbo.Page.WebAppID = dbo.WebApp.WebAppID
LEFT OUTER JOIN dbo.webWebAppPlugin_ValidationOrBusinessRuleList
ON dbo.PageEventRule.WebAppPluginTypeCode = dbo.webWebAppPlugin_ValidationOrBusinessRuleList.WebAppPluginTypeCode
LEFT OUTER JOIN dbo.webPageDescriptionSel
ON dbo.PageEventRule.WebAppEventPageID = dbo.webPageDescriptionSel.PageID
Page Event Parameters
SELECT lower(dbo.PageEventParameter.PageID) PageID,
Event,
dbo.PageEventParameter.Priority,
ParameterName,
ParameterType,
dbo.PageEventParameter.Description,
ListView,
ListValueField,
ListDisplayField
FROM dbo.PageEventParameter
INNER JOIN dbo.[Page]
ON dbo.[Page].PageID = dbo.PageEventParameter.PageID
and dbo.Page.WebAppID = '<INSERT WEBAPP ID>'
Page Help
SELECT lower(dbo.PageHelp.PageID) PageID,
lower(dbo.PageHelp.LanguageID) LanguageID,
dbo.Page.[Description] AS PageName,
dbo.PageHelp.Description,
dbo.PageHelp.DynamicSubtitle,
dbo.PageHelp.DynamicHelp
FROM dbo.PageHelp
INNER JOIN dbo.Page
ON dbo.PageHelp.PageID = dbo.Page.PageID
and dbo.Page.WebAppID = '<INSERT WEBAPP ID>'
INNER JOIN dbo.WebApp
ON dbo.Page.WebAppID = dbo.WebApp.WebAppID