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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.11.2003, 12:25   #1  
2b4fITin is offline
2b4fITin
Участник
Аватар для 2b4fITin
 
80 / 10 (1) +
Регистрация: 07.05.2003
:( Название таблицы???
Уважаемые Коллеги!
Не подскажет ли кто где названия таблиц то смотреть? Пытаюсь залить информацию в таблицу сотрудников, но не смог найти название этой самой таблицы.
Пробовал вариант: открываю таблицу->смотрю в настройки какого-нить поля->далее нажимаю закладку информация и в поле "Название формы" смотрю название таблицы. Правильное ли название я нашёл?

PS.
Прошу прощения, что не разместил данный постинг в "Доработке Аксапты...". Просто туда достучаться навозможно.
__________________
Спасибо за ответ!
Старый 12.11.2003, 12:44   #2  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
В принципе, наверное, да. Только там, насколько я понимаю, название формы. Но обычно оно совпадает с названием основной таблицы.
Там можно кнопочку "Правка" нажать - попадете в ветку АОТ с нужной формой. У нее в DataSources есть источник данных (с аналогичным названием), но для пущей уверенности можно посмотреть свойство Table этого источника данных (по правой кнопке -> Свойства).

PS: Может, в чем-то я и не прав - сам только разбираюсь. Профи поправят...
Старый 12.11.2003, 13:02   #3  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
один из методов.
1) заходите в "расчеты с персоналом/карточка сотрудника". открываете эту форму.
2)в форме карточка сотрудника - правой кнопкой мыши - "настройка"
3)в открывшейся форме закладка "Информация". Название формы "RHRMEmplTable". кнопка редактировать.
4)в открывшемся окне ветка datasource: видим "EmplTable". alt-enter. свойство Table = EmplTable.

второй метод:
1)читаем бестрактис по поводу принятого имяобразования объектов.
2)переводим слово сотрудник на английский.
3)открываем AOT и находим нужную таблицу.

третий метод(если сгенерированы перекрестные ссылки).
1)Смотрим заголовок необходимой формы с выбранной записью. Видим "Сотрудник - "
2)Сервис-Средства разработки-метка-поиск меток. В поиске вводим "сотрудник"
3)Видим, что меток состоящих только из одного слова "Сотрудник" штук 7-8.
4)Видим, что только одна принадлежит SYS слою - это наша. Т.к. таблица "Сотрудник", явно базовая.
5)Нажимаем кнопку "Чем используется ". Видим \Data Dictionary\Tables\EmplTable.
Старый 12.11.2003, 13:34   #4  
2b4fITin is offline
2b4fITin
Участник
Аватар для 2b4fITin
 
80 / 10 (1) +
Регистрация: 07.05.2003
? Так вот далее ...
Уважаемые Коллеги!
Огромнейшее Вам спасибо за ответы. Очень благодарен.
Теперь постараюсь объяснить зачем всё это было мне нужно.
Итак: у меня Аксапта 3.0 SP1

Задача - заполнить (сделать импорт в) таблицу, отвечающую за хранение информации о сотрудниках компании (ФИО, должность, отдел и т.д.).

Мои действия:
1. Прочитал на http://axapta.mazzy.ru про импорт данных в Аксапту.
2. Следовал шагам как описано там (создал группу определения --- настройка таблиц (перед этим создал текстовый файл в нормальном виде с разделителем ~) --- указал таблицу EmplTable --- сделал импорт --- было получено сообщение, что "поле Ссылка должно быть заполнено" - Нельзя создать новые строки в таблице окружения >>> ЧТО НЕ ТАК???? - может я поля какие не те выбрал в настройке полей?; может я информации мало при заливе даю?


Вот и возникло у меня подозрение, что я залил не в ту таблицу.
__________________
Спасибо за ответ!
Старый 12.11.2003, 13:40   #5  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
смотрите код. при создании карточки сотрудника ручками - создаются записи в связанных таблицах.. какие - уже не помню.. в HRMVirtualNetworkTable точно. это таблица уже "наша".. дополнительные параметры типа фотографии/адреса... и вроде строки в "журнале перемещений". так что импортить придется сразу в несколько таблиц.. осторожней только... чревато %))
Старый 12.11.2003, 13:51   #6  
2b4fITin is offline
2b4fITin
Участник
Аватар для 2b4fITin
 
80 / 10 (1) +
Регистрация: 07.05.2003
? ОК. А дальше?
Ок
Ну хорошо!
В datasources указаны такие таблицы: EmplTable, RHRMVirtualNetworkTable, PayParmEmplTrans.
Так откуда импортить то начинать? Вот методом тыка получил, что с EmplTable нельзя - ругается.
Кстати после импорта в таблицу EmplTable все записи сотрудников, которые были исчезли.
__________________
Спасибо за ответ!
Старый 12.11.2003, 14:02   #7  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
смотрите код. в частности метод EmplTable.insert(). Пользуйтесь дебагером. Импортить придется во все. Либо заводить сотрудников руками. А с тем что остальные сотрудники "пропали".. Не пропали они. Просто "не выбраются" из-за ваших импортированных записей : либо удалите то, что насоздавали. либо создайте необходимые записи в связанных таблицах. А вообще - нужно предохраняться перед подобными low-level экспериментами.
Старый 12.11.2003, 14:48   #8  
2b4fITin is offline
2b4fITin
Участник
Аватар для 2b4fITin
 
80 / 10 (1) +
Регистрация: 07.05.2003
Про low-level это Вы точно заприметили. Если честно я только только начинаю подходить к основам Аксапты и по этому могу задавать вопросы кажущиеся элементарными для Вас, но отнюдь не для меня.
Поймите верно - я начинающий.
Отсюда сами понимаете вопросы -)):
1. где посмотреть указанный Вами метод (посмотрел при вызове правки в методах таблицы EmplTable и ничего не нашёл)?
2. Как удалить то, что насоздавал? Или без удаления выбирать то, что нужно?
3. "создайте необходимые записи в связанных таблицах" - это я так понимаю Вы указываете опять на, то что необходимо будет заливать в связанные таблицы. Да?
4. По поводу предохранения не беспокойтесь. Эту БД я как раз и сделал для подобных экспериментов. -))

Уже устал извиняться за свои "начинающие" вопросы.

PS.
Вопрос про обнаружение метода указанной таблицы снят. Уже нашёл.

PS2
Ещё один вопросик если можно:
5. Не нашёл требуемую ссылку при импорте. Где мне её искать и может быть существуют методики поиска требуемых для заполнения полей?
__________________
Спасибо за ответ!
Старый 12.11.2003, 15:07   #9  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
2. один способ - sql запрос.. например delete from empltable where dataareaid='tst' and emplid not in(select EmplId from RHRMVirtualNetworkTable where dataareaid='tst');
второй способ: правой кнопкой на EmplTable-AddIns-Обозреватель таблиц. и ручками выделяете нужные записи и нажимаете кнопочку удаления в toolbar-е
3)да. что необходимо довести дело до конца. и сделать записи в связанных таблицах.
4)хорошо. не буду беспокоиться
Старый 12.11.2003, 15:26   #10  
2b4fITin is offline
2b4fITin
Участник
Аватар для 2b4fITin
 
80 / 10 (1) +
Регистрация: 07.05.2003
Антон!
А по поводу 5-го вопроса? Нет ответа?

ЗЫ
Проверил второй метод. Я наверное неправильно отписал. При импорте вылезает ошибка, что невозможно заполнить какую-то "Ссылку" и поэтому импорт не возможен. Ничего не импортировалось! И в то же время единственная запись, которая была в форме "Карточка сотрудника" исчезла.
Поэтому насколько я понял в обозревателе таблиц ничего и нету!
__________________
Спасибо за ответ!
Старый 12.11.2003, 15:40   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Так вот далее ...
Цитата:
Изначально опубликовано 2b4fITin
Задача - заполнить (сделать импорт в) таблицу, отвечающую за хранение информации о сотрудниках компании (ФИО, должность, отдел и т.д.).
... указал таблицу EmplTable --- сделал импорт --- было получено сообщение, что "поле Ссылка должно быть заполнено" - Нельзя создать новые строки в таблице окружения >>> ЧТО НЕ ТАК???? - может я поля какие не те выбрал в настройке полей?; может я информации мало при заливе даю?
Таблица правильная.
Тут дело в связанной таблице HRMVirtualNetworkTable
Аксапта часть информации запоминает там.
Надо рыть туда.

Я бы начал с того, что отключил проверку при записи (validateWrite) при импорте. А заметм периодической операцией сделать Управление персоналом \ Периодические операции \ Построение окружения.

Если это не поможет, то сначала надо заполнить HRMVirtualNetworkTable, а затем EmplTable.

Если дождетесь вечера, то вечером я проверю.
Старый 12.11.2003, 15:56   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Извините, что встрял.
пока туда-сюда бегал, Антон Солдатов уже ответил.

И еще. Не стесняйтесь спрашивать. Все нормально. Мы все начинали.

Цитата:
Изначально опубликовано 2b4fITin
5. Не нашёл требуемую ссылку при импорте. Где мне её искать и может быть существуют методики поиска требуемых для заполнения полей?
Ссылки из EmplTable не существует.
Существует обратная ссылка из HRMVirtualNetwork.
В EmplTable есть validateWrite.

Кстати, работа с окружением (HRMvirtualNetwork) типичный пример того, как НЕ НАДО делать! Похоже, эту штуку сделал программист, совершенно не знакомый с принципами устройства Аксапты.

В общем, вы начали изучение с, пожалуй, самого тяжелого исключения из правил этой программе.

Быстрым способом (без программирования) можно определить список обязательных полей, если создать Excel-шаблон для импорта.
Обратите внимание на скрытые строки в этом шаблоне. Чертовски познавательная штука. А выделенные цветом колонки - обязательны к заполнению.

Но, если в работу Аксапты вмешался программист, то все может быть гораздо сложнее (как в этом случае ). Надо дополнительно анализировать методы validateWrite, validateField, insert у EmplTable.

Ваша ошибка генерируется в классе HRMVirtualNetworkTableReplicate::insert()

Скорее всего, вам должен помочь метод с отключением проверки во время импорта.
Старый 12.11.2003, 16:05   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано 2b4fITin
При импорте вылезает ошибка, что невозможно заполнить какую-то "Ссылку" и поэтому импорт не возможен. Ничего не импортировалось!
Приведите точный текст ошибки.

Или поищите сами, где эта ошибка возникает
Например, вот так: http://axapta.mazzy.ru/hints/xref/#060

или поставьте точку останова в первой строке метода Info::add()
Этот метод используется для вывода любых строк в infolog (даже в корпоративном портале).
Спасибо за совет Андрею Васько.
Старый 12.11.2003, 17:25   #14  
2b4fITin is offline
2b4fITin
Участник
Аватар для 2b4fITin
 
80 / 10 (1) +
Регистрация: 07.05.2003
Thumbs up Большое спасибо!
Уважаемый Сергей и Антон!
Большое спасибо Вам за ответы.
Информации много пошёл разбираться.
__________________
Спасибо за ответ!
Старый 13.11.2003, 05:11   #15  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
Цитата:
Изначально опубликовано 2b4fITin
Про low-level это Вы точно заприметили. Если честно я только только начинаю подходить к основам Аксапты и по этому могу задавать вопросы кажущиеся элементарными для Вас, но отнюдь не для меня.
Поймите верно - я начинающий.
вчера проглядел. когда я говорил low-level эксперименты - я подразумевал работу непосредственно с БД, кодом приложения и экспортом/импортом через нестандартные группы определения, а не Ваши навыки.
Старый 13.11.2003, 05:44   #16  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
Цитата:
Изначально опубликовано 2b4fITin
Антон!
Ничего не импортировалось! И в то же время единственная запись, которая была в форме "Карточка сотрудника" исчезла.
самопроизвольно ничто не удаляется. должны быть причины.

либо у вас в группе определений(ГО) стояла галочка "удалить данные компании перед импортом". тогда у вас не только "карточка сотрудника" исчезла.

либо, при импорте, аксапта проанализировала вашу ГО, и предложила удалить данные из тех таблиц, которые перечислены в ГО и в которых уже есть данные(в Аксапте). если вы подтвердили предложение удалить - система удалит. но никак не самостоятельно.
Старый 13.11.2003, 11:24   #17  
2b4fITin is offline
2b4fITin
Участник
Аватар для 2b4fITin
 
80 / 10 (1) +
Регистрация: 07.05.2003
Red face Не выходит каменный цветок!
Почему то не выходит у меня импортировать данные.
Мои действия:
1. Управление персоналом --- Обработка --- Построение окружения --- Отметил "Сотрудники, Контактные лица, Кандидаты" --- ОК
2. Администрирование --- Экспорт/Ипорт данных --- ГО --- создал группу по импорту сотрудников --- Настройка таблиц (указал HRMVirtualNetworkTable в поле название таблицы; указал файл импорта; отметил пропустить проверку; настройку полей посмотрел, но ничего не менял).
3. Импорт. Получил ошибку "Невозможно создать запись в "Окружение" ('HRMVirtualNetworkTable') Личность: , Сотрудник. Запись уже существует. Одна запись импортирована.
4. Далее по такой же схеме заливаю в EmplTable. Возникает такая же ошибка как и в предыдущем шаге.
5. Пытаюсь посмотреть эту запись. Иду с начала Управление персоналом --- Сотрудник --- Пустая форма????
6. Пытаюсь посмотреть эту запись в другом месте. Иду с потом Расчёты с персоналом --- Карточка Сотрудника --- Пустая форма????

Что то видимо не так делаю. А что?
__________________
Спасибо за ответ!
Старый 13.11.2003, 14:44   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
хорошо. вечером попробую
Старый 13.11.2003, 15:57   #19  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Re: Не выходит каменный цветок!
Цитата:
Изначально опубликовано 2b4fITin
...Что то видимо не так делаю. А что?...
Все зависит от того, какие данные вы хотите импортировать. И от того, какие лицензии у вас... закуплены, наверное.

Например, если бы у вас не была закуплена лицензия на модуль "Управление персоналом", то проблем с окружением не возникало бы.

Вообще в полнофункциональной версии данные о сотруднике хранятся в двух табличках. Основная часть данных хранится в EmplTable. Часть данных хранится в HRMVirtualNetworkTable. Данные этой таблицы отображаются на закладке "Личные сведения" карточки сотрудника.

Мне только что удалось внаглую импортировать сотрудника, не нарвавшись при этом на ошибки. Смотрите, как я сделал.

1. Создаю текстовый файл с незамысловатым текстом "ХХХХ~Вася Пупкин".

2. Настраиваю группу определений для импорта. Создаю строчку и заполняю поля:
Группа определения: "Тест"
Название: "Тест"
Тип: "Произвольный"

Нажимаю кнопку "Настройка таблиц":
Название таблицы: "EmplTable"
Статус: "Импорт"
Имя файла импорта: (тут указываю путь к незамысловатому текстовому файлу)
Разделитель записей: "~"
Внимание!!! ставлю галку в поле "Пропустить проверку"

Жму кнопку "Настройка полей":
Имя поля :: Номер поля :: Активный
EmplId :: 1 :: [X]
Name :: 2 :: [X]
Во всех остальных полях галка в поле "Акивный" не стоит.

Далее делаю импорт. Система пишет, что "1 проводок импортировано".

Захожу в карточку сотрудников. Вижу еще одну запись:
Код сотрудника: "ХХХХ"
Имя сотрудника: "Вася Пупкин"

На закладке "Личные сведения" поля в группах полей "Личные сведения", "Страна", "Виза", и т.д. серенькие (неактивные). Это потому, что в связанной таблице HRMVirtualNetworkTable для записи с новым сотрудником нет соответствующей записи.

Тут можно пойти двумя путями.

1. Предположим, "личные сведения" вы тоже хотите импортировать.

Сформировать данные для табличики HRMVirtualNetworkTable. Код окружения можно сформировать произвольно, но так, чтобы он не пересекся с соответствующей номерной серией. Посмотрите импорт в связанную таблицу InventDim при импорте номенклатуры по этому поводу (http://www.axforum.info/forums/showt...1236#post21236).

Импортировать лучше обе таблички сразу (хотя можно и по очереди). Связь делается по коду сотрудника.

2. "Личные сведения" вам импортировать не нужно (вы их либо вводить не будете, либо введете вручную).

После импорта записи в таблицу EmplTable открываем "Управление персоналом\Периодические операции\Обработка\Построение окружения". Ставим галку напротив "Сотрудники". Жмем "ОК".

Идем в справочник сотрудников. Выбираем нашего ХХХХ, смотрим на закладку "Личные сведения". Поля личных сведений стали доступными. В них можно вводить данные (можно и не вводить). Запись в таблице HRMVirtualNetworkTable для сотрудника была создана автоматически на основании номерной серии (можете сами проверить).

PS.

1. Не нужно ничего программировать. Это вредно и неразумно, если до вас это уже кто-то запрограммировал. Исключением является случай, когда процесс программирования является целью.

2. С полем "Пропустить проверку" нужно работать крайне аккуратно (если вы абсолютно уверены в том, что вы делаете)! Можно все сломать.

3. Всегда делайте резервные копии всего, что только можно, перед таким импортом данных.
__________________
С уважением,
glibs®
Старый 13.11.2003, 16:18   #20  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Re: Не выходит каменный цветок!
Цитата:
Изначально опубликовано glibs
2. С полем "Пропустить проверку" нужно работать крайне аккуратно (если вы абсолютно уверены в том, что вы делаете)! Можно все сломать.
3. Всегда делайте резервные копии всего, что только можно, перед таким импортом данных.
Абсолютно согласен.
Спасибо, glibs.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пересоздание таблицы при синхронизации Serg16 DAX: Администрирование 1 26.08.2009 13:55
Название поля и таблицы... NetBus DAX: Программирование 1 08.07.2005 16:45
Как зная название поля таблицы узнать текст, который прописан в Label? Hidden DAX: Функционал 1 03.06.2005 13:52
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Можно ли имея только название(имя) таблицы добавить в неё запись? Yuri Safronov DAX: Программирование 8 03.10.2002 11:41

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:07.