Добрый день. Как можно быстро поменять домен в web-service если у меня их больше 100 штук? Руками так себе идея :)
Нравится
Раздел веб-сервисов строится по схеме VwWebServiceV2, домен и другие параметры хранятся в поле MetaData. Увидеть его текст можно, преобразовав:
select *, cast (MetaData as varchar(max))from VwWebServiceV2
Там данные в виде:
 { "MetaData":{ "Schema":{ "ManagerName":"ServiceSchemaManager", "UId":"eaab0cb8-b7c8-4fc7-9ff0-535be5f59413", "A2":"MkpServiceUpdatedApp", "A5":"3364ce9a-4a9f-4dbc-81be-9558a29167cf", "B1":[ ], "B2":[ ], "B3":[ ], "B6":"da38393b-cb46-4fa6-92b9-e4358bcf9f48", "B8":"7.16.1.2135", "IQ1":"https://marketplace.creatio.com", "IQ2":1, "IQ4":[ { "UId":"506ee0c1-c665-4ba6-b13b-c180f109bfac", "A2":"MkpGetUpdatedApp", "IR3":5000, "IR1":{ "IW2":1, "IW1":[ { "UId":"1d09ea9a-2fe5-4571-8a79-67303748099b", "A2":"MkpAppTitle", "IU1":"appTitle", "IU2":"Text", "IU7":true, "IU4":3, "IU5":{ "IV1":"null", "IV2":1 }, "IU6":[ ] }, { "UId":"0c7dc8bd-5325-4625-8e9b-451417fa5109", "A2":"MkpAppId", "IU1":"appId", "IU2":"Text", "IU7":true, "IU4":3, "IU5":{ "IV1":"null", "IV2":1 }, "IU6":[ ] }, { "UId":"d9c52339-3ffd-4469-b090-75003039fed7", "A2":"MkpAppFile", "IU1":"appFile", "IU2":"Text", "IU7":true, "IU4":3, "IU5":{ "IV1":"null", "IV2":1 }, "IU6":[ ] } ], "IT2":1, "IT1":"/api/version/master" }, "IR2":{ "IW2":1, "IW1":[ { "UId":"1b29bdc2-caf8-47fb-aa03-a6c85ccf059f", "A2":"MkpVersion", "IU1":"$.version", "IU2":"Text", "IU4":1, "IU5":{ "IV1":"null" }, "IU6":[ ] }, { "UId":"562715e8-d551-4566-9430-88d72a986bd2", "A2":"MkpChanged", "IU1":"$.changed", "IU2":"Text", "IU4":1, "IU5":{ "IV1":"null" }, "IU6":[ ] }, { "UId":"b7e74153-9cb2-4309-8289-14a40a9d363e", "A2":"MkpReleasenotes", "IU1":"$.release_notes", "IU2":"Text", "IU4":1, "IU5":{ "IV1":"null" }, "IU6":[ ] } ] } } ] } } }
Если раскодировать и отформатировать текст поля, видно, что URL находится в параметре IQ1. Следовательно, его можно заменить, затем преобразовав текст обратно в тот же формат и не повредив символы в поле до начала JSON.
Следует учитывать, что VwWebServiceV2 — не таблица, а представление, реально данные находятся в поле MetaData в записях в SysSchema, где ManagerName = 'ServiceSchemaManager'.
Олег, заведена идея возможности параметризировать адрес вызова веб-сервиса, чтобы базовый URL вызова задавался динамически, например, как параметр процесса или системная настройка.
Это зависит от количества обращающихся с такой потребностью.
Тут в прошлом году Вы же уже сталкивались с похожим случаем и я предлагал обходной способ.