Регистрация  |  Вход

Кто нибудь пользавался https://github.com/financialforcedev/apex-mdapi?

Вопрос в том что после генерации MetadataService класса он получается слишком большой и при разных попытках залить его на бокс, ошибка о том что превышены лимиты по симвалам.

Вопрос в том что после генерации MetadataService класса он получается слишком большой и при разных попытках залить его на бокс, ошибка о том что превышены лимиты по симвалам.

Беглого взгляда на этот класс достаточно чтобы предположить что он был сгенерен из Metadata API WSDL, так что попробуйте создать его самостоятельно:
1. Cкачайте Metadata API WSDL (Setup -> Develop -> API -> Generate Metadata WSDL)
2. Заимпортите файл из пункта 1 обратно через Setup -> Develop -> Apex -> Generate from WSDL

Беглого взгляда на этот класс достаточно чтобы предположить что он был сгенерен из Metadata API WSDL, так что попробуйте создать его самостоятельно:
1. Cкачайте Metadata API WSDL (Setup -> Develop -> API -> Generate Metadata WSDL)
2. Заимпортите файл из пункта 1 обратно через Setup -> Develop -> Apex -> Generate from WSDL

Согласен, но это сгенирирует MetadataServicePatch далее его нужно запустить и он уже сгенерит новый Документ MetadataService с которого как там написано нужно скопать код и вставить в новый класс MetadataService а в этом сгенерином доке 10000 строк и сохранять он их не хочет т.к. пишет что привышен лимит символов.

Согласен, но это сгенирирует MetadataServicePatch далее его нужно запустить и он уже сгенерит новый Документ MetadataService с которого как там написано нужно скопать код и вставить в новый класс MetadataService а в этом сгенерином доке 10000 строк и сохранять он их не хочет т.к. пишет что привышен лимит символов.

По-ходу они описывают какой-то свой процесс, а так форс сразу должен сгенерить класс и его имя можно задать каким угодно, хоть бы и MetadataService. Проблема только в том что Metadata WSDL не парсится самим форсом С кандачка выдаёт "unsupported type xsd:anyType", тут просто надо подправить WSDL'ку и заменить там в паре мест xsd:anyType на xsd:string. А вот дальше вылезает ошибка интереснее "Class name 'Metadata' already in use. Please edit WSDL to remove repeated names" - там надо копать, как это обойти.

А ты попробуй задеплоить внаглую класс MetadataService :)

По-ходу они описывают какой-то свой процесс, а так форс сразу должен сгенерить класс и его имя можно задать каким угодно, хоть бы и MetadataService. Проблема только в том что Metadata WSDL не парсится самим форсом :) С кандачка выдаёт "unsupported type xsd:anyType", тут просто надо подправить WSDL'ку и заменить там в паре мест xsd:anyType на xsd:string. А вот дальше вылезает ошибка интереснее "Class name 'Metadata' already in use. Please edit WSDL to remove repeated names" - там надо копать, как это обойти.

А ты попробуй задеплоить внаглую класс MetadataService :)

Основная проблема в том, что типы данных из WSDL конфиликтуют со встроенными типами данных Salesforce (вышеупомянутая Metadata это только начало). По сути, все что делает эта библиотека, это решает проблемы с этими конфликтами. Если лень возится, проще собрать запрос руками через HttpRequest/HttpResponse/Http.

Основная проблема в том, что типы данных из WSDL конфиликтуют со встроенными типами данных Salesforce (вышеупомянутая Metadata это только начало). По сути, все что делает эта библиотека, это решает проблемы с этими конфликтами. Если лень возится, проще собрать запрос руками через HttpRequest/HttpResponse/Http.

А вот тут-то как раз непонятно почему происходит конфликт - имя внешнего класса задаётся вручную и не с кем не конфликтует, а вот даже если имя внутреннего класса с чем-то там совпадает - это не должно волновать форс.

А вот тут-то как раз непонятно почему происходит конфликт - имя внешнего класса задаётся вручную и не с кем не конфликтует, а вот даже если имя внутреннего класса с чем-то там совпадает - это не должно волновать форс.

CIIiPT
Согласен, но это сгенирирует MetadataServicePatch

А ч мешает использовать уже готовый класс, который уже лежит в гитхабе? У меня он сохранился без проблем.

[quote="CIIiPT"]Согласен, но это сгенирирует MetadataServicePatch[/quote]

А ч мешает использовать уже готовый класс, который уже лежит в гитхабе? У меня он сохранился без проблем.

wilder
CIIiPT
Согласен, но это сгенирирует MetadataServicePatch

А ч мешает использовать уже готовый класс, который уже лежит в гитхабе? У меня он сохранился без проблем.


The total size of apex code in this application after removing comments exceeds the maxiumum character size of 3000000
При загрузке этого класса который на гите

[quote="wilder"][quote="CIIiPT"]Согласен, но это сгенирирует MetadataServicePatch[/quote]

А ч мешает использовать уже готовый класс, который уже лежит в гитхабе? У меня он сохранился без проблем.[/quote]
The total size of apex code in this application after removing comments exceeds the maxiumum character size of 3000000
При загрузке этого класса который на гите

CIIiPT
wilder
CIIiPT
Согласен, но это сгенирирует MetadataServicePatch

А ч мешает использовать уже готовый класс, который уже лежит в гитхабе? У меня он сохранился без проблем.


The total size of apex code in this application after removing comments exceeds the maxiumum character size of 3000000
При загрузке этого класса который на гите

Это проблема не конкретно этого класса. А вашего орга. Обратитесь в поддержку они увеличат размер места под код. Ну или проведите полный рефакторинг существующего кода.

Часть кода можно попробовать вынести в пакет.

[quote="CIIiPT"][quote="wilder"][quote="CIIiPT"]Согласен, но это сгенирирует MetadataServicePatch[/quote]

А ч мешает использовать уже готовый класс, который уже лежит в гитхабе? У меня он сохранился без проблем.[/quote]
The total size of apex code in this application after removing comments exceeds the maxiumum character size of 3000000
При загрузке этого класса который на гите[/quote]

Это проблема не конкретно этого класса. А вашего орга. Обратитесь в поддержку они увеличат размер места под код. Ну или проведите полный рефакторинг существующего кода.

Часть кода можно попробовать вынести в пакет.