Форумы Интермех
 ° Начало ° Ответить ° Статистика ° Регистрация ° Поиск ° RSS ° Wiki °

Форумы Интермех / Search, ImProject / Api-функции для работы с типом объекта "производственный заказ"
Автор Сообщение
Nat
Участник
ОАО Радиозавод, Пенза

Дата: 26 Дек 2012 13:11:16


Уважаемые разработчики и программисты.
нужно использовать API-функцию для просмотра состава производственного
заказа (дерево). Не смогла найти ее описание и примеры использования,
прошу помощи в этом вопросе.
Спасибо.

Jk
Участник
НПП Интермех

Дата: 26 Дек 2012 14:42:22


такой функции насколько я знаю - нет

Nat
Участник
ОАО Радиозавод, Пенза

Дата: 26 Дек 2012 15:10:40


PrepareZakazStructure, а лучше PrepareZakazStructureExpand (могу ошибиться в написании). Спасибо

Jk
Участник
НПП Интермех

Дата: 26 Дек 2012 15:59:52


Эти функции возвращают состав заказа, а не "смотрят" его.

PrepareZakazStructure

Функция возвращает дерево производственного заказа в виде набора данных:

Синтаксис:

function PrepareZakazStructure(ZakazID: Integer; ArtVerID: Integer): OleVariant;

ZakazID - идентификатор объекта производственного заказа
ArtVerID - номер версии объекта
Результат - набор данных для компоненты TClientDataSet, поля будут практически аналогичные как и в результате функции PrepareExpandArtStructure, но для построения дерева надо использовать поля: ZREC_ID - идентификатор записи в составе, PARENT_ZREC_ID - идентификатор родительской записи в составе.


PrepareZakazStructureExpanded

Функция возвращает развернутый состав производственного заказа в виде набора данных:

Синтаксис:

function PrepareZakazStructureExpanded(ZakazID: Integer; ArtVerID: Integer): OleVariant;

ZakazID - идентификатор объекта производственного заказа
ArtVerID - номер версии объекта
Результат - набор данных для компоненты TClientDataSet, поля аналогичные как в функции PrepareArticleStructure.

Nat
Участник
ОАО Радиозавод, Пенза

Дата: 26 Дек 2012 16:21:32


Спасибо за ответ. извините за неточность выражения.
Может быть у Вас есть пример использования
PrepareZakazStructureExpanded
в алгоритме JavaScript.

Jk
Участник
НПП Интермех

Дата: 26 Дек 2012 16:36:18 ° Поправил: Jk


test.js:

SApp = new ActiveXObject("S4.TS4App");
SApp.Login();
data = SApp.PrepareZakazStructureExpanded(2220, 0);

cds = new ActiveXObject("CDSAutomation.CDSAutoObject");
cds.Data = data;

s = "";
while (!cds.eof())
{
s = s + cds.FieldByName("DESIGNATIO") + " " + cds.FieldByName("COUNT_PC")+ "\n";
cds.Next();
}

WScript.Echo(s);

для его работы надо cdsautomation.dll

Nat
Участник
ОАО Радиозавод, Пенза

Дата: 26 Дек 2012 17:19:15


Спасибо буду пробовать.

Nat
Участник
ОАО Радиозавод, Пенза

Дата: 26 Дек 2012 18:05:13


Расскажите подробнее про
PrepareWhereUsedArticle2 3673, -1,0,"DESIGNATIO",2, res

Спасибо

Jk
Участник
НПП Интермех

Дата: 27 Дек 2012 15:19:23


Nat это аналог PrepareWhereUsedArticle

Nat
Участник
ОАО Радиозавод, Пенза

Дата: 1 Фев 2013 08:43:24 ° Поправил: Nat


1

Katenok-13
Участник
ОАО "Бийский котельный завод"

Дата: 1 Фев 2013 12:02:43


Цитата: Nat
Вопрос: в составе есть объекты из Imbase и у них нет инвентарного номера, обозначения.


У них наверняка есть идентификатор объекта и ключ Imbase. Первичны - идентификаторы объектов, на них всё строится.

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

Nat
Участник
ОАО Радиозавод, Пенза

Дата: 4 Фев 2013 08:34:21


Спасибо Katenok за отклик.
Оказалось ключ есть в неописанных полях функции.

v7
Участник
ОАО "ПМЗ ВОСХОД", Павлово

Дата: 5 Июн 2013 16:29:26


Существуют ли api-функции, которые позволяют редактировать состав производственного заказа: добавлять или удалять объекты?

Jk
Участник
НПП Интермех

Дата: 5 Июн 2013 18:50:41


v7 существуюет

Jk
Участник
НПП Интермех

Дата: 6 Июн 2013 18:04:34


вот они:

Функция получения COM-объекта для работы с ПЗ
function OpenPZakaz(ZakazID, ArtVerID, WorkCopy: Integer):IPZakaz;
ZakazID - идентификатор объекта ПЗ
ArtVerID - номер версии ПЗ
WorkCopy - 0 архивная копия, 1 рабочая копия (если у ПЗ есть документ, то при взятии на редактирование есть две версии состава - архивная и рабочая)


Функции интерфейса IPZakaz:

Сохранить изменения в заказе в базу.
procedure Save;


Получить первый дочерний элемент в заказе
function GetFirstChild(ParentNode: Integer): Integer;
ParentNode - идентификатор родительского элемента
Результат - znNil если нет дочерних элементов или идентификатор.


Получить следующий элемент в заказе
function GetNextSibling(Node: Integer): Integer;
Node - идентфикатор элемента за которым требуется полчить следующий
Результат - zNil если Node был последним в своей ветке или идентификатор следующего элемента


Удалить элемент
procedure DeleteNode(Node: Integer);
Node - идентфикатор элемента


Получить параметр элемента
function GetFieldValue(Node: Integer; const FieldName: WideString): WideString;
Node - идентфикатор элемента
FieldName - имя поля, доступны следующие параметры - ZREC_ID, PART_AID, PART_VER, COUNT_PC, MU_ID, RAZDEL,
NOTE, LINK_TYPE, FORMAT, PR_ID, OP_CODE, OP_VARS, Z_MATERIAL, POSITIO, DESIGNATIO,
NAME, DOC_ID, DOC_VER_ID
Результат - значение параметра


Изменить параметр элемента
procedure SetFieldValue(Node: Integer; const FieldName: WideString; const FieldValue: WideString);
Node - идентфикатор элемента
FieldName - имя поля, доступны следующие параметры - COUNT_PC, MU_ID, RAZDEL,
NOTE, FORMAT, PR_ID, OP_CODE, OP_VARS, Z_MATERIAL, POSITIO
FieldValue - новое значение поля


Добавить элемент в состав заказа
function AddChild(ParentNode, PartAID, PartVerID, razdel: Integer;
Count: Double; MuID: Integer; const Position, Note: WideString;
LinkType: PcLinkType; prID: Integer; OpCode: ZakazRecordStatus;
OpVars: Integer; const Purchased, Params: WideString): Integer;

ParentNode - родительский элемент, куда добавить компонент
PartAID - идентификатор объекта, который будет добавлен
PartVerID - номер версии объекта, или -1 (ссылка на актуальну версию объекта)
razdel - раздел спецификации
Count - количество
MuID - единицы измерения объекта
Position - позиция
Note - примечание
LinkType - тип связи: 0 - обычная связь, 1 - технологическая связь 2 - производственная
prID - идентификатор признака принадлежности, (по умолчанию -1)
OpCode - код типа связи в составе 0 - запись скопирована из конструкторского состава, 1 - новая добавленная запись, 2 - запись помечена как удаленная, 3 - запись помечена как изменённая, 4 - активный заменитель, 5 - неактивный заменитель
OpVars - зарезервировано, значение - 0
Purchased - зарезервировано, значение - ""
Params - зарезервировано, значение - ""


Специальные константы:
znRoot = 0; - идентификатор корневого узла заказа
znNil = -1; - идентификатор "несуществующего" узла заказа

v7
Участник
ОАО "ПМЗ ВОСХОД", Павлово

Дата: 7 Июн 2013 08:52:37


Спасибо

v7
Участник
ОАО "ПМЗ ВОСХОД", Павлово

Дата: 31 Июл 2013 10:07:23


Есть какой-нибудь небольшой пример использования этих функций в качестве инструмента на VBScript?

Nat
Участник
ОАО Радиозавод, Пенза

Дата: 9 Сен 2013 16:27:16


Подскажите, есть ли в результирующем наборе данных функции PrepareZakazStructure поля с информацией о состоянии подузла, т.е. добавлен, изменен и т.д. (то что выделяется шрифтом и цветом в дереве ПЗ) и дата этого изменения?

Jk
Участник
НПП Интермех

Дата: 9 Сен 2013 18:17:31 ° Поправил: Jk


Nat да, поле OPCODE, но там нет информации об удаленных узлах

Nat
Участник
ОАО Радиозавод, Пенза

Дата: 10 Сен 2013 09:49:29 ° Поправил: Nat


Jk, сасибо за ответ. Вы предугадали следующий вопрос.
Задача в том, чтобы определить перечень узлов из ПЗ, в составе которых прошло изменение и дату изменения - для минимизации объема интеграции с другой системой.
Поэтому действительно нужна информация об подузлах, помеченных удалением.

Jk
Участник
НПП Интермех

Дата: 10 Сен 2013 11:49:31


Цитата: Nat
и дату изменения

такой информации в Search в принципе нет


Цитата: Nat
нужна информация об подузлах, помеченных удалением.

эту информацию можно получить через ф-ию OpenPZakaz и методы интерфейса IPZakaz (выше в теме описано)

Katenok-13
Участник
ОАО "Бийский котельный завод"

Дата: 16 Сен 2013 08:42:19


Nat, у нас как раз стоит такая же задача - интеграция производственных заказов с другой системой.
Предлагаю обмениваться наработками. Мой Skype: Katenok-13.

Ваш ответ

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL 
...



Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 

На форуме сейчас: гостей - 2
пользователей - 0
Наибольшее количество посетителей: 87 [1 Янв 2017 02:23:26]
гостей - 87 / пользователей - 0


miniВВ © 2001-2021