Периодически, у предприятий, работающих в PLM системе возникает вопрос- как сделать замену определенных символов или же попросту этот символ удалить во время регистрации документов, при этом не меняя исходники. Например: в системе Компас 3D в наименовании или обозначении используются спецсимволы @ / и другие. Соответственно при записи таких моделей- эти спецсимволы также передаются. Наша задача исправить этот вариант, чтобы при записи выводились только нужные символы. Аналогично можно использовать данную настройку для исправления ошибок, связанных с человеческим фактором (конструктор вместо точки поставил запятую).
Данная настройка производится от имени администратора системы IPS. Для нашего примера возьмем задачу -в атрибуте Обозначение при регистрации документа убирать спецсимвол @.
Первое, что нужно сделать – создать сценарий для шагов жизненного цикла. Сценарии находятся в навигаторе Объекты/Настройки системы/Сценарии/Сценарии для шагов ЖЦ.
В тексте сценария ввести следующий код и нажать Сохранить (текстовый вариант кода будет в конце статьи).
Далее нужно зайти в Конфигуратор базы данных/Схемы жизненного цикла, и выбрать схему ЖЦ, которой принадлежит тип документа, для которого создавался скрипт. Например, для «Деталей Компас» схема ЖЦ – Схема ЖЦ конструторских объектов.
Нас интересует этап «В разработке». Именно на этом этапе создается документ и формируется обозначение. В свойствах этапа в пункте Сценарий, нужно выбрать созданный ранее сценарий. Далее сохраняем настройки. Новые документы будут создаваться с корректным обозначением. Перезагрузка IPS не требуется.
Приложение 1. Код скрипта корректировки обозначения
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using Intermech.Interfaces;
public class Script
{
public ICSharpScriptContext ScriptContext { get; set; }
public void Execute(IDBObject sender, IDBLifecycleStep nextstep, IUserSession session)
{
if (sender.TypeID.ToString() == "1656") //Идентификатор объекта, для которого будет срабатывать скрипт
{
var oboz = sender.GetAttributeByID(9); //Получаем атрибут обозначение
oboz.Value = oboz.Value.ToString().Replace("@","");
}
}
}
Теперь проверяем исходную задачу: в модели Компас 3D есть сторонний символ «@». Однако при регистрации в системе IPS данный символ пропадает.
Автор статьи: инженер ООО "АМКАД"
Егор Гасников
Официальный телеграм-канал AMCAD по программным решениям IPS Search.
Пишем обо всём интересном, обсуждаем возможности