AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.08.2004, 17:11   #1  
diessever_imported is offline
diessever_imported
Участник
 
9 / 10 (1) +
Регистрация: 16.08.2004
Thumbs up
Всем доброго времени суток!
У меня такой вопрос:
Как программно создать запись в таблице относящейся к другой компании?
Дело в том, что используя табличную коллекцию для номенклатурных единиц необходимо, чтобы таблицы InventTableModule и InventLocation были для каждой компании свои. При настройке коллекции, возникает потребность в добавлении строк в таблицы InventTableModule и InventLocation для того чтобы отображался справочник во всех компаниях.
Старый 24.08.2004, 18:20   #2  
diessever_imported is offline
diessever_imported
Участник
 
9 / 10 (1) +
Регистрация: 16.08.2004
Нашел метод ChangeCompany, вроде все заработало.
Старый 26.08.2004, 11:19   #3  
competitor is offline
competitor
Участник
 
10 / 10 (1) +
Регистрация: 17.03.2003
Поосторожней с ChangeCompany: если у пользователя нулевые права в этой компании(настраивается через домены) - ChangeCompany вываливается с ошибкой в рантайме и Аксапта падает. Приходится 1) использовать try-catch и дальнейшую обработку проводить батчем, запущеным под другим пользователем или 2) дать таки права на какой-нибудь dummy-table(в этом случае пользователь будет видеть компанию в списке выбора - что не всегда есть хорошо).
Старый 26.08.2004, 17:29   #4  
diessever_imported is offline
diessever_imported
Участник
 
9 / 10 (1) +
Регистрация: 16.08.2004
Можно немного поподробней про "1) использовать try-catch и дальнейшую обработку проводить батчем, запущеным под другим пользователем" Если можно привидите пример использования. Как вариант можно разрулить правами по доменам, но думаю вариант предложенный вами будет болле корректным.
Старый 27.08.2004, 11:41   #5  
competitor is offline
competitor
Участник
 
10 / 10 (1) +
Регистрация: 17.03.2003
<div class='XPPtop'>X++</div><div class='XPP'>[color=:blue]try[/color]
{
    [color=:blue]changecompany[/color](cmp)
    {
         [color=:green]// пишем в связанные таблички
[/color]          .......................
    }

    [color=:green]//помечаем InventTable(или пишем в лог синхронизации - реализация на выбор)
[/color]     InventTable.IsSynchronized = [color=:blue]true[/color];
    InventTable.update();
}
[color=:blue]catch[/color](exception::Error) [color=:green]//<-- вывалились по ошибке, в этой компании номенклатуры видно не будет
[/color]{

}</div>

Запущенный под паверюзером батч выбирает периодически записи с InventTable.IsSynchronized = false и применяет тот же код
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:09.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.