UROVO - морозильный RT 40
UROVO - DT40
HONEYWELL морозильный CK65L0N
HONEYWELL EDA 50k
MOBILEBASE MD5
Caribe - IP 65
Mobilebase DS5-AX
UROVO R70-U2
Honeywell EDA61K
ZEBRA (Motorola) MC330M
Список будет дополняться.
1) 1) Запросить apk файл в отделе Технической поддержки
2) Перекидываем компонент на терминал и проверяем подключение к сети на терминале.
3) Производим установку компонента, после чего заходим в настройки в приложении, которое установили.
Важно
Что бы попасть в меню настроек, необходимо удерживать в правом верхнем углу экрана палец и появится всплывающее меню.
Адрес сервера – указываем тот, на котором запущен сервис Android
Порт – оставляем по умолчанию
Размер шрифта – оставляем по умолчанию
Нажимаем сохранить.
4) Запускаем на терминале приложение и авторизовываемся
Организация политики резервного копирования в рамках БД Oracle 10G 10.2.0.4
На сервере предоставленной компанией развернута операционная система
- Microsoft Windows 2008 Server 64
- Oracle 10 G 64
Настроена система резервного копирования СУБД Oracle 10G по технологии DataGuard.
*Проведенные меры гарантируют надежность базы и невозможность потери данных в рамках 5 минут. Скорость восстановления в случаи возможного сбоя составит менее 2 часов. Рекомендации: после внедрения системы CWMS3000 реализовать холодное резервное копирование базы данных и архивных логов на независимый, не хранящийся в помещении серверной источник (пример: кассета, стример и т.д.), в этом случаи исключается абсолютная возможность потери данных. *
1. Процедура резервного копирования.
- резервное копирование выполняется непрерывно в режиме онлайн
Рис1. задание BACKUP выполняется НЕПРЕРЫВНО . Основной сервер база данных Oralce 10G 10.2.0.4 orawms-01 в режиме реального времени (не позже чем раз в 5 минут) передает ARCHIVELOG на резервный сервер Oralce 10G 10.2.0.4 orawms-02 , который в свою очередь производит все транзакции произошедшие на основном сервере. Процессом управляет встроенные в Oralce 10G 10.2.0.4 механизмы DATAGUARD . Сервера автоматически находят друг друга (выключение сервера, перезагрузка сервера, выключение и простой до 24 часов) при условии нахождения в рамках одной ЛВС (Локально Вычислительной Сети) и неизменности сетевых реквизитов указанных выше, и синхронизируются .
2. Процедура проверки валидности схемы резервного копирования.
Рекомендация выполнять процедуру 2 - Ежедневно .
Шаг 1.
Пуск -> Выполнить (Действие возможно выполнять как на любом из указанных выше серверах, так и на любом ПК находящимся в рамках одной ЛВС с серверами с установленным OracleClient версии 10G)
dgmgrl
Шаг 2(dgmgrl).
connect sys/Пароль
show configuration
Должно быть слово SUCCES если не SUCCES сервера находятся не в синхронизированном состоянии. Необходимо оставить заявку в техническую поддержку ООО “ИнтелСервис”:
Тел. +7495 7757631
notify@cwms3000.ru
Шаг 3(dgmgrl).
SHOW DATABASE 'bwms' 'RecvQEntries';
(команда возвращает таблицу лог-файлов, полученных из основной базы, но не примененных к резервной. При синхронной работе таблица должна быть пустой)
Шаг 4(dgmgrl).
EDIT DATABASE 'bwms' SET STATE='READ-ONLY';
(перевод резервной базы в режим «только чтение»)
Шаг 5(sqlplus) Выполняется на резервном сервере.
Пуск -> Выполнить
Sqlplus
Login: *
Password: *
(запуск командной оболочки для sqlplus)
Шаг 6(sqlplus) Выполняется на резервном сервере.
Select max(n) from st_stock;
Select max(n) from st_doc_in;
Select max(n) from st_doc_out;
(запросы возвращают номера последних строк из таблиц: сток, документы прихода, документы расхода. Их необходимо зафиксировать, для дальнейшего сравнения с номерами строк в основной базе)
Шаг 7(sqlplus) Выполняется на основном сервере.
Выполнить Шаги 5 и 6 на основном сервере. Сравнить полученные номера на основном и резервном серверах.
При сильном расхождении номеров – на сотни, тысячи и т.п., необходимо оставить заявку в техническую поддержку ООО “ИнтелСервис”.
Шаг 8(dgmgrl).
EDIT DATABASE 'bwms' SET STATE='ONLINE';
(возврат резервной базы в состояние «подключена»)
3. Процедура перехода на использование резервного сервера.
В случаи если основная база вышла из строя и не подлежит востанавлению штатными методами (отказ wms) выполняется следующая процедура:
Шаг 1.
Пуск -> Выполнить (Действие выполняется на резервном сервере)
dgmgrl
Шаг 2.
connect sys/Пароль
Шаг 3.
failover to bwms (резервный сервер берет на себя функции основного).
КОМАНДА выполняется при одобрении инженера технической поддержки.
Тел. +7495 7757631
notify@cwms3000.ru
После команды меняем IP адреса на сервере DNS вручную
Перед запуском в Listner поменять IP - адрес!!!!!!
1.Патч для инстанса BOX
Выгрузить патчсет с базы разработки и применить патч сет на инстанс №5 BOX
2.Создание нового инстанса базы клиента
Скрипты по созданию инстанса клиента в базе разработки (если клиент не заведен ранее):
INSERT INTO tst.cis_copy
(N,FD,TD,NAME,DSC,WRAP,
LICENSE_CNT,MOBILE_LICENSE_CNT,DPC_MAIL,
EXPIRE,DSC_BACKUP,NEXT_PATCH_DATE)
VALUES
(<номер нового инстанса>,kk_common.GetFD,kk_common.GetTD,'<ПОЛЬЗ_БД>-<ИНСТАНС_БД>','Реквизиты подключения к клиенту',1,
<Кол-во Стац Лицензий>,<Кол-во Моб Лицензий>,<Адрес клиента для рассылки эл писем>,
<Срок лицензии до>,'<Реквизиты сервера БД>',<дата след патча>)
/
Скрипт создание записи о проведенном патче:
INSERT INTO cis_ddl_changes_applyed
(CIS_DDL_CHANGES_N,CIS_COPY_N,USER_N_APPLYED,FD,TD,N,PATCHSET_N)
select max(CIS_DDL_CHANGES_N)
, <порядковый номер инстанса> , <0 или свой номер из списка сотрудников>, sysdate , kk_common.GetTD , 0 , -9
from tst.cis_ddl_changes_applyed where CIS_COPY_N = 5
/
3.Экспорт базы пользователя BOX
Создать экспорт пользователя BOX Экспорт БД
Заархивировать экспорт ZIP, RAR
Передать файл клиенту
Настройка Сервера БД
Проверка работоспособности STANDBY.
oracle
dgmgrl
connect
ваш пароль от SYS
show configuration
Инструкция подключения к БД для ПК Windows
Для начала нужно установить Oracle 10.2.0.3
1. Отключаем UAC в Windows
2. Устанавливаем режим совместимости на установочном файле setup.exe
3. Запускаем установочный файл Setup.exe
4. Next
5. Выбираем Administrator
6. Путь оставляем по умолчанию
7. Проверяем нет ли ошибок
8. Install
9. Далее настраиваем соединение. Галочку не ставим, жмём следующий.
10. Оставляем всё как есть, жмём следующий.
11. Задаём имя XX- где XX название инстанса.
12. Оставляем TCP, жмём следующий.
13. Прописываем ip адрес БД
14. Ставим галочку «Yes, perform a test»
15. Нажимаем Change Login. Прописываем USERNAME и PASSWORD от БД, далее жмём следующий.
16. Жмём следующий
17. Оставляем галочку No, жмём следующий.
18. Подключение успешно добавлено. Жмём следующий.
19. Нажимаем готово
20. Установка Oracle завершена. Нажимаем Exit.
21. После установки Oracle, создаём папку на диске С, выдаём полные права на папку, под названием CWMS3000, кладём в неё файл cwms3000.exe и запускаем.
Так же необходимо выдать права на реестр и права на создание глобальных объектов.
Выдача прав на создание глобальных объектов.
• Заходим в локальную политику безопасности.
Для этого с правами администратора нажимаем Пуск, в строке поиска набираем слово "локальная", запускаем Локальную политику безопасности.
• Нажимаем в Локальные политики/Назначение прав пользователя.
• Находим тут Создание глобальных объектов, нажимаем два раза и добавляем проблемного пользователя.
• Применить. Ок.
22. После выгрузки первых dll файлов таких как menu.dll и midas.dll, необходимо зарегистрировать midas.dll под правами локального администратора.
• Запускаем командную строку из-под администратора
• Прописываем следующее «regsvr32 путь до файла\midas.dll»
23. Указываем имя пользователя и пароль от БД, строка соединения SSID
24. Авторизовываемся в системе
Удаление архивных логов через RMAN
Заходим в командную строку
Пишем rman
connect target sys/password@TST , где TST - имя базы
delete archivelog all;
______________________
y - подтверждение операции.
Создаем отдельную папку под батник со скриптом очистки архивных логов и файл конфига.
Батник называем латинице, например: delete_arch_log , чтобы было наглядно понятно за что он отвечает.
@echo off
rman.exe TARGET sys/password@wms cmdfile=C:\Del_ARCH_Log\rman_archl_del.rcv log=C:\Del_ARCH_Log\log.txt
Где
cmdfile=C:\Del_ARCH_Log\rman_archl_del.rcv
- путь до файла конфига
sys/password@wms
- пароль пользователя SYS и уникальное название БД.
log=C:\Del_ARCH_Log\log.txt
- скрипт на создание логирования по удалению.
rman_archl_del.rcv - файл конфигурации промежутка дат для очистки логов.
run
{
CROSSCHECK ARCHIVELOG ALL;
DELETE NOPROMPT ARCHIVELOG TIME BETWEEN 'sysdate-365' AND 'sysdate-10';
}
Где:
CROSSCHECK ARCHIVELOG ALL;
- команда проверки арклогов.
DELETE NOPROMPT ARCHIVELOG TIME BETWEEN 'sysdate-365' AND 'sysdate-10';
- команда удаления арклогов старше 10 дней.
Данные действия нужно сделать для BD (БД) и STANDBY (резервный сервер БД). Отдельные файлы для отдельных задач в планировщике.
Далее создаем задачку в планировщике задач.
Проверять очищаются ли арклоги или нет можно по инструкции:
Создать файл SendDGMGRL.vbs следующего содержания
'----- Константы: которые нужно задать ----------
const SMTP_Host = "mail.server.ru" ' Адрес SMTP-сервера
const DB_Connection = "sys/pasword@instance" 'Строка соединения с БД
const SMTP_Subj = "Отчет dgmgrl" ' Тема сообщения
const SMTP_Port = 25 ' Порт SMTP
const SMTP_Name = "smtp_user" ' Логин для отправки
const SMTP_Password = "pswd" ' Пароль для отправки
const SMTP_From = "user@server.ru" ' Адрес отправителя
const SMTP_To = "notify@cwms3000.ru" ' Адрес получателя
const WaitCyclesCnt = 300 ' Задержка в секундах на ожидание вывода
'------------------------------------------------
const cdoSendUsingPort = 2
Const cdoBasic = 1
dim fso, fn, f, ff(), cnt
dim WshShell, oExec, input
set fso=createobject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("dgmgrl")
oExec.StdIn.Write "connect " & DB_Connection
oExec.StdIn.Write VbCrLf
oExec.StdIn.Write "show configuration;"
oExec.StdIn.Write VbCrLf
oExec.StdIn.Write "show database wms sendqentries;"
oExec.StdIn.Write VbCrLf
oExec.StdIn.Write "show database bwms recvqentries;"
oExec.StdIn.Write VbCrLf
oExec.StdIn.Write "exit;"
oExec.StdIn.Write VbCrLf
input = ""
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Do While Not oExec.StdOut.AtEndOfStream
input = input & oExec.StdOut.Read(1)
Loop
'Set f = fso.GetFolder(fso.buildpath(Cons_Path, "attachment")).Files
' Создание списка файлов
'for each fn in f
' if lcase(fso.getextensionname(fn))="txt" then
' AddToArray fn, ff, cnt
' end if
'next
' Отправка письма
SendMessage SMTP_To, SMTP_Subj & " от " & Now, input, ff
' Удаление файлов
'for each fn in ff
' fso.deletefile fn
'next
'----------------
' Отправка электронного письма
sub SendMessage(Recipient, Subj , Text, Attachments)
dim msg,fn
set msg = WScript.CreateObject("CDO.Message")
with msg
.BodyPart.charset = "KOI8-R"
.From = SMTP_From
.To = Recipient
.Subject = Subj
.TextBody = text
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTP_Host
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTP_Port
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = SMTP_Name
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SMTP_Password
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
.Configuration.Fields.Update
.MimeFormatted = true
for each fn in attachments
.addattachment fn
next
.Send
end with
end sub
'----------------
' Добавление элемента в массив
sub AddToArray(Itm, Arr, Count)
Count = Count + 1
ReDim Preserve Arr(Count-1)
Arr(Count-1) = Itm
end sub
Добавить вызов этого файла в планировщик Windows, настроить интервалы и время запуска
Выгрузка из библиотеки
1) Необходимо зайти в утилиты –> библиотеки.
2) Найти в поиске DPCenterServ.exe и выгрузить нажав на «…»
3) После того, как выгрузили заходим в корневую папку с программой CWMS.
Копируем файл DPCenterServ.exe в отдельную папку. (Например, DPC на диске С)
Так же необходимо дать права на папку (запись, чтение и выполнение, изменение, чтение), в которой лежит DPCenterServ.exe
Запуск в режиме приложения
Для работы службы нам необходимо запустить DPCenterServ.exe в режиме приложения для выгрузки всех модулей, которые используется при работе сервиса.
1) Запускаем DPCenterServ.exe
2) После запуска, выбираем инстанс
3) Авторизовываемся
4) Ждём примерно 15 минут, для выгрузки всех модулей, после чего закрываем.
Создание службы
1) Открываем командную строку от имени администратора
2) Прописываем путь до файла DPCenterServ.exe и команду /install, после чего нажимаем enter
3) Служба успешно создана
4) Открываем службы
5) Ищем нами созданную службу
6) Открываем её свойства и переходим во вкладку «Вход в систему»
7) Авторизовываемся под учётной записью с правами администратора, поставив галочку и задав верные данные от неё
Реестр службы
1) Нажимаем Win + R, открывается выполнить
2) Выполняем команду regedit
3) Открывается реестр
4) Переходим по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SDPCenter
5) Открываем ImagePath
6) Прописываем после пути такие значения, как:
• BaseName – имя секции, из которой брать значения параметров ресстра
Например “BaseName=TST-TST” – где 1 TST – это база, 2 TST – это пользователь
• TaskGroup – группа задач
Например, если необходимо распараллелить dpc задачи на несколько служб
7) Так как мы создали 1 службу, то прописываем только значение BaseName
Почтовые данные
Так же необходимо прописать почтовые данные в реестре
1) Переходим по пути HKEY_CURRENT_USER\Software\CWMS3000\TST-TST
2) Заполняем следующее:
• DPCenterNotifyMailList – список e-mail адресов подлежащих оповещению
• MailSMTPHost – DNS имя или IP адрес SMTP сервера
• MailSMTPPort – порт SMTP сервера
• MailUser – имя пользователя
• MailUserPwd – пароль
3) Делаем автологин, для этого в 6 пункте необходимо прописать VTR356
Файлы TXT
Так же для работы служб, необходимо создать файл 1.txt по путям:
C:\Windows\System32\config\systemprofile\Desktop
C:\Windows\SysWOW64\config\systemprofile\Desktop
DPCWatcher приложение win32, которое может работать как приложение (ключ запуска /app), или может устанавливаться как Windows сервис (ключ запуска /install).
Каждый из стандартных сервисов CWMS DPCService и PrintService, при попытке взятии задании из очереди отправляет в сеть данные с широковещательными пакетами протокола UDP по порту 2573. DPCWatcher слушает на порту 2573 и анализирует состав посылки
Установка сервиса с ключем /install, после дописать в реестре(HKEY_LOCAL_MAZHINE\SYSTEM\CurrentControlSet\services\SDPC_Watcher) доп параметрый запуска "BaseName=TEST-TST" "RestartMin=10" "SDPCenter1" "SPrintServ" "RestartError=10" "CmdFile=RunIfERR.cmd" "UDPPort=2573".
Описание параметров
net stop %1
taskkill /PID %2 /F
net start %1
где %1-передается имя сервиса, %2-PID Process ID из windows(сам файл изменять не надо)
Рекомендации для клиентов.
Уважаемые клиенты, рекомендуем вам перезагружать DPC службы 1 раз в сутки, а сервер АПП 1 раз в 2 суток.
Важная информация для клиентов, использующих ОС Windows 7 на АПП сервере
Возможна ситуация, когда DPC-сервисы, запущенные в режиме служб, будут отрабатывать очередь заданий, но при этом задачи, использующие MS-excel в работе, по факту никаких действий совершать не будут, т.е. файлы в систему загружаться не будут, печать по шаблонам идти не будет, рассылка флешбеков вестись не будет. В логах сервисов можно будет увидеть связанную с этим ошибку: Microsoft Office Excel cannot access the file... Для устранения данной ошибки и возобновления корректной работы сервисов необходимо сделать следующее:
Очистка временных файлов и логов
Когда накопленные временные файлы начинают занимать много места, могут возникнуть проблемы со временем отработки заданий и производительностью системы в целом. В данном случае поможет их очистка.
Маски штрихкодов настраиваются в модуле Рабочие места/Штрихкодирование/Маски штрихкодов .
Создать новую маску можно, нажимая на кнопку StBarcodeMaskNew(отмечено желтым), либо можно взять за основу уже сделанную маску ШК, путем нажатия на иконку с двумя бумажными листами(отмечено салатовым).
Проверить есть ли уже настроенная маска или нет можно с помощью функции теста(отмечено голубым). Редактируются созданные маски через значок карандаша(отмечено серым). Удаляются по нажатию на красный крест(отмечено красным). Удаленные маски продолжают отображаться, но отличить их можно по столбцу TD, у удаленных будет проставлена конкретная дата удаления.
Далее разберем создание маски на примере:
На скриншоте видно, создана маска (01)14810065009657(11)211208(17)220904(10)2(21)1716.
Название маски записывается в соответствующее поле.
В строке Маска отображается параметры маски ШК, которые вы заполняли.
В строке Пример вы можете указать ШК для наглядности.
В строке Длина указываете общее количество символов ШК(скобки не учитываются).
В главном поле вы добавляете параметры маски ШК ANCHOR и KEY. Добавляются они путем нажатия на соответствующую кнопку. Разберем первый якорь из нашего примера: как видно из скриншота, он имеет описание - "ANCHOR:(01)+1/3|14". Расшифровывается оно так: "ANCHOR"-якорь, "(01)"-наименование якоря(то что в скобках), "+1" - с какого символа идет распознавание якоря, "3" - с какого символа идет считывание состава якоря, "14" - длина символов состава якоря.
Первый ключ из нашего примера: "KEY:CHAR|/+CODE", где "KEY" - ключ, "CHAR"- тип данных значений AI, "+CODE" - имя переменной в которую считывается значение(на следующем скриншоте показано).
В данном примере клиенту необходимо было при скане ШК передавать код номенклатуры, дату производства и партию.
ANCHOR:(01)+1/3|14 - якорь (01) считывается с первого символа, состав считывается с третьего символа, длина состава 14 символов
KEY:CHAR|/+CODE - передается код номенклатуры.
ANCHOR:(11)+17/19|6 - якорь (11) считывается с семнадцатого символа, состав считывается с девятнадцатого символа, длина состава 6 символов
KEY:DATE|YYMMDD/+PROD_DATE - передается дата производства в формате YYMMDD
ANCHOR:(10)+33/35|1 - якорь (10) считывается с тридцать третьего символа, состав считывается с тридцать пятого символа, длина состава 1 символ
KEY:CHAR|/6+PART_NUM - передается серийный номер(партия).
По итогу заполнения всех параметров маски ШК жмем сохранить.
Чтобы проверить работоспособность маски вставляем пример в поле тест и жмем на соответствующую кнопку, в случае корректного создания маски получаем такой результат:
По мере добавление видов ШК, инструкция может дополняться.
UCC/EAN ИДЕНТИФИКАТОР ПРИМЕНЕНИЯ
СТАНДАРТ
GS1-128 (formerly UCC/EAN-128) Barcodes
ВВЕДЕНИЕ
Стандарт “UCC/EAN ИДЕНТИФИКАТОР ПРИМЕНЕНИЯ” призван способствовать эффективному движению товаров и информации. Стандарт применим для перемещения товаров и информации внутри и вне предприятия, между различными отраслями индустрии и на глобальном уровне.
Стандарт разработан для решения огромного количества различных задач, возникающих в процессах товарного обращения мировой коммерции, с учетом максимальной гибкости его применения и минимизации издержек. При разработке стандарта главное внимание было обращено на расширение управляемости системы с помощью организации различных типов данных по их функциональному использованию и объединению схожих форм данных в глобальный стандарт элементов данных. В результате стандарт очень напоминает универсальный язык. Для некоторого количества “слов” были определены их “написание” и “смысл”. Эти «слова» используются для составления «сообщений», подходящих к определенному типу товаров и определенной среде обращения. Эти «сообщения» понимаются каждым и везде.
Этот стандарт разработан, чтобы дополнить, а не заменить, другие стандарты EAN/UCC. Ранее большинство стандартов EAN/UCC разрабатывались, в основном, для идентификации потребительских товаров. Нужды индустрии и коммерции требовали идентификацию множества других характеристик товара в сфере перемещения его по пути движения от производителя до конечного потребителя. К таким характеристикам можно отнести срок годности товара, номер лота, идентификацию контейнера, единицы измерения и размеры грузовой единицы, адреса отправителя и получателя и еще целый ряд другой информации. Стандарт предложил альтернативный метод некоторых EAN/UCC кодов, используемых с другими символиками. Однако, эти возможности были встроены в стандарт лишь только для того чтобы увеличить выбор возможностей для создания сообщений с наименьшими издержками.
Стандарт “UCC/EAN ИДЕНТИФИКАТОР ПРИМЕНЕНИЯ” представляет нечто большее, чем штриховой код. Он объединяет средства коммуникации с возможностью связи информации и товаров. Он дополняет EAN/UCC процессы идентификации продуктов.
Он связывает физические товары с электронным обменом данных о них. Он может использоваться для облегчения обработки информации, управляющей процессами бизнеса.
Внедрение и использование этого стандарта создает стабильность использования программного обеспечения, обрабатывающего потоки товаров и информации между предприятиями на длительную перспективу. Стандарт создан на принципах “открытой архитектуры”. Стандарт разработан для внедрения его в виде отдельных модулей в новые области применения с минимальными отклонениями. Фундамент стандарта построен таким образом, чтобы получить выгоды от будущих технологических улучшений без серьезного вмешательства в применяемое программное обеспечение.
Суммируя вышесказанное, стандарт является многосторонним и мощным средством, которое может использоваться для улучшения потоков товаров и информации. Разработанный на перспективу, он уже хорошо работает в настоящем.
ОБЩЕЕ ОПИСАНИЕ ИДЕНТИФИКАТОРОВ ПРИМЕНЕНИЯ
Идентификаторы применения (Application Identifier - AI) являются префиксами, используемые для определения полей данных. Каждый префикс уникально определяет смысл и формат поля данных, непосредственно следующего за ним. В дальнейшем, идентификатор применения и поле данных вместе взятые, будем называть элементом строки.
Каждый AI состоит от двух до четырех цифр, предшествующих полю данных, которое он определяет. Для экономии длины, все широко используемые AI содержат только 2 цифры. Первые две цифры определяют длину AI. Например, AI, начинающиеся с 40, являются трехзначными: от 400 до 409.
Поле данных, следующее за AI, может быть как цифровым, так и буквенно-цифровым. Его длина не может превышать 30 символов. Оно может быть фиксированной или переменной длины.
Элементы строк кодируются в системе EAN/UCC-128, подмножестве системы Code 128. Система EAN/UCC-128 содержит зарезервированный символ FNC1, следующий непосредственно за стартовым символом.
Несколько элементов строк могут соединяться в единую строку (единый штриховой код). Когда первые две цифры AI предопределяют длину поля, то нет нужды в разделителе. Следующий AI следует сразу же после последнего символа поля данных предыдущего AI. Если в единой строке первым идет AI с полем переменной длины, то перед следующим AI идет разделитель – FNC1.
Максимальная длина строки символов, с учетом коэффициента увеличения, изображенная в виде штрихового кода, не должна превышать 16.5 см. Количество символов не должно превышать 48.
ОБРАБОТКА ЭЛЕМЕНТОВ СТРОК
Обработка элементов строк выполняется по шагам:
1-шаг. Считывание и декодирование.
Штриховой код (ШК), символьное представление буквенно-цифровой строки, читается сканером, который воспринимает символы ШК в системе Code 128. Сканер (а точнее, программное обеспечение, «вшитое» в сканер) проверяет:
а) целостность данных, вычисляя контрольное число по алгоритму modulo 103,
б) создает символ идентификации системы EAN/UCC-128 -]C1; где ]C1=стартовый символ +FNC1,
в) переводит разделители FNC1 в символы <GS>,
г) формирует строку символов данных,
д) передает строку символов для дальнейшей обработки программному обеспечению на компьютере.
2-шаг. Обработка строки символов программой.
Обработка строки состоит из следующих этапов, которые:
а) верифицируют символику EAN/UCC, проверяя идентификатор символики – ]С1,
б} разбивают строку на отдельные записи, содержащие идентификатор применения и его поле данных, используя предопределенные значения длины поля или разделители <GS>,
в) передают каждый AI и соответствующее поле на дальнейшую обработку.
Пример.
Пусть штриховой код содержит глобальный идентификационный номер продукта (AI 01), номер лота (AI 10) и серийный номер (AI 21):
Ниже приводится схема обработки элементов строк:
E A N / U C C – 1 2 8 С И М В О Л
Start C
FNC1
01 04841234123457
10 12345qwert
FNC1
21 asdfghjk
C/D
Stop
Сканирование / декодирование
С Т Р О К А Д А Н Н Ы Х С И М В О Л А
]C1
01 04841234123457
10 12345qwert
<GS>
21 asdfghjk
Обработка строки программой
З А П И С И П Р О Г Р А М М Ы
01 04841234123457
10 12345qwert
21 asdfghjk
Замечание: Разделители и пробелы показаны для облегчения чтения.
ПЕРЕЧЕНЬ ЭЛЕМЕНТОВ СТРОК
Каждый параграф описывает элемент строки, содержащий идентификатор применения (AI) и поле данных. Для простоты, наименование элемента строки или идентификатора применения будем отождествлять с наименованием поля данных, содержащихся в этом элементе строки. Параграфы упорядочены по номерам AI. Следует иметь в виду, что в настоящее время, в основном, AI применяются для идентификации грузов и торговых единиц груза, перемещаемых и обрабатываемых на складах готовой продукции, на перевалочных складах и на оптовых базах.
1. Серийный грузовой контейнерный код (SSCC) (AI 00)
Серийный грузовой контейнерный код используется для идентификации логистической единицы в процессах транспортировки, складирования и других логистических (материально-технического снабжения) операциях. Под логистической единицей понимается груз, рассматриваемый как единое целое.
Идентификатор Применения 00 указывает, что поле данных содержит грузовой контейнерный код (SSCC).
Вид упаковки груза (0 – 9). Для стран, использующих систему EAN, рекомендуется применять индикатор упаковки равный 3. Индикаторы упаковки используются в некоторых секторах промышленности США. Полный список индикаторов используемых в США, следующий:
0 = короб или ящик,
1= поддон (больше чем ящик),
2 = контейнер (больше чем поддон),
3 = неопределенный тип упаковки,
4 = для внутреннего использования внутри компании,
5 – 9 = зарезервированы для будущего использования.
Формат элемента строки
Серийный грузовой контейнерный код
AI
Вид упаковки
EAN/UCC префикс компании Номер груза
Контр.
цифра
00
N1
N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17
N18
00
N1
0 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17
N18
(EAN)
(UCC)
ТАБЛИЦА 1
EAN/UCC, префикс компании, назначается национальной ассоциацией товарной нумерации. Префикс компании может содержать до 9 цифр.
Номер груза – серийный номер, присваиваемый компанией.
Контрольная цифра - вычисляется по определенному алгоритму на основании предыдущих 17 цифр. Алгоритм расчета приведен в Приложении 1. Она применяется для контроля формирования поля данных.
2. Глобальный номер торговой единицы (GTIN) (AI 01). Фиксированный размер.
Под торговой единицей фиксированного размера понимается любой товар, постоянного размера.
Формат элемента строки
AI
EAN/UCC идентификационный номер торговой единицы
Контр.
цифра
0 1
0 0 0 0 0 0 N1 N2 N3 N4 N5 N6 N7
N8
0 1
0 0 N 1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
N12
0 1
0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12
N13
0 1
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13
N14
(EAN/UCC-8)
(UCC-12)
(EAN/UCC-13)
(EAN/UCC-14)
ТАБЛИЦА 2
AI 01 указывает, что поле данных содержит идентификационный номер единицы товара.
Идентификационный номер торговой единицы в системе EAN/UCC может быть в форме EAN/UCC – 8, UCC – 12, EAN/UCC –13, EAN/UCC – 14.
Контрольная цифра - вычисляется по определенному алгоритму на основании предыдущих 13 цифр (если идентификационный номер торговой единицы в системе
EAN/UCC содержит меньше 13 цифр, то добавляются лидирующие нули). Алгоритм расчета приведен в приложении 1. Она применяется для контроля формирования поля данных.
2a. Глобальный номер торговой единицы (GTIN) (AI 01). Переменный размер.
К товарам переменного размера могут быть отнесены товары производственный процесс которых не гарантирует однородности по весу, размеру или длине (головка сыра, мясные туши, рыба).
Формат элемента строки
EAN/UCC идентификационный номер торговой единицы
AI
Индикатор
EAN/UCC префикс компании Номер груза
Контр. Цифра
01
9
0 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13
N14
01
9
N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13
N14
(UCC-12)
(EAN/UCC-13)
ТАБЛИЦА 3
AI 01 указывает, что поле данных содержит идентификационный номер единицы товара.
Цифра «9» в поле индикатор, указывает, что этот товар является товаром переменного размера.
EAN/UCC префикс компании назначается национальной ассоциацией товарной нумерации. Префикс компании может содержать до 9 цифр. В случае если товар идентифицируется системой EAN/UCC –8, то префикс компании состоит из пяти лидирующих нулей и префикса национальной организации.
Номер груза – серийный номер, присваиваемый компанией, а в случае если товар идентифицируется системой EAN/UCC –8, то номер груза – серийный номер, присваиваемый национальной организацией.
Контрольная цифра - вычисляется по определенному алгоритму на основании предыдущих 13 цифр (Если идентификационный номер торговой единицы в системе EAN/UCC содержит меньше 13 цифр, то добавляются лидирующие нули). Алгоритм расчета приведен в приложении 1. Она применяется для контроля формирования поля данных.
3. Идентификатор товара, содержащегося в грузе (AI 02). Фиксированный размер.
Этот AI 02 применяется на грузовых этикетках, содержащих AI 00. Необходимое условие применения AI 02 – все составляющие груза должны иметь один и тот же идентификационный номер.
Формат элемента строки
AI
GTIN содержащихся торговых единиц
Контр. цифра
02
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13
N14
ТАБЛИЦА 4
AI 02 указывает, что поле данных содержит идентификационный номер торговых единиц содержащихся в грузе.
Идентификационный номер торговой единицы является идентификационным номером наивысшего уровня торговых единиц, содержащихся в грузе.
Контрольная цифра - вычисляется по определенному алгоритму на основании предыдущих 13 цифр (Если идентификационный номер торговой единицы в системе EAN/UCC содержит меньше 13 цифр, то добавляются лидирующие нули). Алгоритм расчета приведен в приложении 1. Она применяется для контроля формирования поля данных.
На этом же грузе должен присутствовать AI 37, указывающий количество торговых единиц содержащихся в грузе.
3a. Идентификатор товара, содержащегося в грузе (AI 02). Переменный размер.
Этот AI 02 применяется на грузовых этикетках содержащих AI 00. Необходимое условие применения AI 02 – все составляющие груза должны иметь один и тот же идентификационный номер товара переменного размера.
Формат элемента строки
AI
GTIN содержащихся торговых единиц
Контр. цифра
02
9 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13
N14
ТАБЛИЦА 5
AI 02 указывает, что поле данных содержит идентификационный номер торговых единиц содержащихся в грузе.
Идентификационный номер торговой единицы является идентификационным номером наивысшего уровня торговой единицы, содержащейся в грузе.
Контрольная цифра - вычисляется по определенному алгоритму на основании предыдущих 13 цифр (Если идентификационный номер торговой единицы в системе EAN/UCC содержит меньше 13 цифр, то добавляются лидирующие нули). Алгоритм расчета приведен в приложении 1. Она применяется для контроля формирования поля данных.
На этом же грузе должен присутствовать AI 37, указывающий количество торговых единиц содержащихся в грузе.
4. Номер лота (партии, группы, пакета) (AI 10)
Номер лота (партии, группы, пакета) дает некоторую информацию, которую производитель (или сторона ответственная за отслеживание движения торговой единицы) считает уместной для торговой единицы, к которому данная строка относится. Эти данные могут относиться как к самой торговой единице, так и к торговым единицам, содержащимся в грузе. Этот номер может быть присвоен в процессе производства товарной единицы (номер рабочей смены, номер производственной линии, или любой другой производственный код).
Формат элемента строки
AI
Номер лота (партии, группы, пакета)
1 0
Х1 переменная длина Х20
ТАБЛИЦА 6
AI 10 указывает, что поле данных содержит номер лота (партии, группы, пакета).
Номер лота (партии, группы, пакета) может быть переменной длины и содержать как цифры, так и буквы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенной в приложении 3.
Так как он является атрибутом конкретной торговой единицы, он не должен обрабатываться самостоятельно, а только совместно с идентификационным номером торговой единицы, к которой он относится.
Замечание: Номер лота не является обязательным атрибутом торговой единицы.
5. Дата изготовления (AI 11)
Формат элемента строки
AI
Дата выработки
Год
Месяц
День
1 1
N1 N2
N3 N4
N5 N6
ТАБЛИЦА 7
AI 11 указывает, что поле данных содержит дату изготовления торговой единицы.
Дата изготовления является датой изготовления или сборки торговой единицы определяемым производителем. Эти данные могут относиться как к самой торговой единице, так и к торговым единицам, содержащимся в грузе.
Структура:
Год – последние две цифры года (например, 1997=97). Обязательно указывается.
Месяц- это номер месяца (например, январь=01). Обязательно указывается.
День- номер дня соответствующего месяца (например, второй день = 02). Указывать необязательно, но в этом случае это поле заполняется двумя нулями.
Так как дата изготовления товара является атрибутом конкретной торговой единицы, то она не должна обрабатываться самостоятельно, а только совместно с идентификационным номером торговой единицы, к которой она относится.
Замечание: Если год изготовления больше 50, то товар изготовлен в 20 веке, а если меньше, то товар изготовлен в 21 веке.
6. Предельный срок платежа (AI 12).
Формат элемента строки
AI
Дата платежа
Год
Месяц
День
1 2
N1 N2
N3 N4
N5 N6
ТАБЛИЦА 8
Предельный срок платежа суммы, указанной в платежном поручении.
AI 12 указывает, что поле данных содержит дату, к которой счет должен быть оплачен.
Структура:
Год – последние две цифры года (например, 1997=97). Обязательно указывается.
Месяц- это номер месяца (например, январь=01). Обязательно указывается.
День- номер дня соответствующего месяца (например, второй день = 02). Указывать необязательно, но в этом случае это поле заполняется двумя нулями.
Данные, полученные в результате считывания сканером штрихового кода вышеописанной строки, означают предельный срок платежа. Так как они являются атрибутом номера платежного поручения и EAN/UCC адресного кода, то они не должны обрабатываться самостоятельно, а только совместно с EAN/UCC адресного кода.
Замечание: Если год изготовления больше 50, то товар изготовлен в 20 веке, а если меньше, то товар изготовлен в 21 веке.
7. Дата упаковки (AI 13).
Дата упаковки торговой единицы.
Формат элемента строки
AI
Дата упаковки
Год
Месяц
День
1 3
N1 N2
N3 N4
N5 N6
ТАБЛИЦА 9
AI 13 указывает, что поле данных содержит дату упаковки торговой единицы.
Дата упаковки указывается стороной формующей и оформляющей груз. Эти данные могут относиться как к самой торговой единице, так и к торговым единицам содержащимся в грузе.
Структура:
Год – последние две цифры года (например, 1997=97). Обязательно указывается.
Месяц- это номер месяца (например, январь=01). Обязательно указывается.
День- номер дня соответствующего месяца (например, второй день = 02). Указывать необязательно, но в этом случае это поле заполняется двумя нулями.
Так как дата упаковки является атрибутом конкретной торговой единицы, то она не должна обрабатываться самостоятельно, а только совместно с идентификационным номером торговой единицы, к которой она относится.
Замечание: Если год изготовления больше 50, то товар изготовлен в 20 веке, а если меньше, то товар изготовлен в 21 веке.
8. Дата окончания сохранности качества (минимальный срок годности) (AI 15).
Дата окончания сохранности качества торговой единицы.
Формат элемента строки
AI
Минимальный срок годности
Год
Месяц
День
1 5
N1 N2
N3 N4
N5 N6
ТАБЛИЦА 10
AI 15 указывает, что поле данных содержит дату окончания сохранности качества торговой единицы.
Дата сохранности качества торговой единицы указывает на дату идеального потребления или наилучшего использования данного продукта. Этот показатель говорит о качестве. Часто он изображается в виде «Продается до: » или «Годен до: ».
Структура:
Год – последние две цифры года (например, 1997=97). Обязательно указывается.
Месяц- это номер месяца (например, январь=01). Обязательно указывается.
День- номер дня соответствующего месяца (например, второй день = 02). Указывать необязательно, но в этом случае это поле заполняется двумя нулями.
Так как дата сохранности является атрибутом конкретной торговой единицы, то она не должна обрабатываться самостоятельно, а только совместно с идентификационным номером торговой единицы, к которой она относится.
Замечание: Если год изготовления больше 50, то товар изготовлен в 20 веке, а если меньше, то товар изготовлен в 21 веке.
9. Дата окончания безопасного использования (максимальный срок годности) (AI 17).
Дата окончания безопасного использования торговой единицы.
Формат элемента строки
AI
Максимальный срок годности
Год
Месяц
День
1 7
N1 N2
N3 N4
N5 N6
ТАБЛИЦА 11
AI 17 указывает, что поле данных содержит предельную дату потребления или использования данного продукта.
Этот показатель говорит о безопасности. Часто он изображается в виде «Использовать до: » или «Окончательная дата : ».
Структура:
Год – последние две цифры года (например, 1997=97). Обязательно указывается.
Месяц- это номер месяца (например, январь=01). Обязательно указывается.
День- номер дня соответствующего месяца (например, второй день = 02). Указывать необязательно, но в этом случае это поле заполняется двумя нулями.
Так как эти данные являются атрибутом конкретной торговой единицы, то они не должны обрабатываться самостоятельно, а только совместно с идентификационным номером торговой единицы, к которой они относится.
Замечание: Если год изготовления больше 50, то товар изготовлен в 20 веке, а если меньше, то товар изготовлен в 21 веке.
10. Разновидность продукта (AI 20)
Разновидность продукта торговой единицы для использования внутри компании.
Этот идентификатор используется для того, чтобы отличить некоторый вариант товара от стандартной торговой единицы. Он используется, когда эта разница не существенна, чтобы требовать отдельный идентификационный номер.
Эта строка предназначена только для использования производителем, и не должна использоваться никаким другим торговым партнером, для которого EAN/UCC является единственным стандартом, применимым в цепи движения товара.
Формат элемента строки
AI
Разновидность номера
2 0
N1 N2
ТАБЛИЦА 12
AI 20 указывает, что поле данных содержит номер разновидности продукта.
Номер варианта продукции назначается пользователем этой строки. Она формирует дополнительную возможность нумерации, которая может быть использована в дополнении к идентификационному номеру товара и позволяет создание 100 вариантов стандартного товара.
Этот вариант продукта должен всегда декодироваться и обрабатываться вместе с идентификационным номером. Вне сферы производства данная информация игнорируется.
11. Серийный номер (AI 21)
Серийный номер торговой единицы товара.
Формат элемента строки
AI
Серийный номер
2 1
Х1 переменная длина Х20
ТАБЛИЦА 13
AI 21 указывает, что поле данных содержит серийный номер.
Серийный номер назначается объекту на время его жизни. Соединяясь вместе с идентификационным номером торговой единицы, этот серийный номер уникально идентифицирует каждый отдельный экземпляр товара.
Поле серийного номера является переменной длины и содержит как цифры, так и буквы содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3. Серийный номер определяет производитель.
Так как эти данные являются атрибутом конкретной торговой единицы, то они не должны обрабатываться самостоятельно, а только совместно с идентификационным номером торговой единицы, к которой они относится.
12. Вспомогательные данные специальных фармацевтических продуктов (AI 22)
Вспомогательные данные (количество, срок годности, номер лота) для специальных фармацевтических продуктов.
Эта строка применяется для согласования с существующим, не EAN/UCC, стандартом, используемым для некоторых фармацевтических продуктов. Он не рекомендуется для новых приложений или других отраслей. Взамен рекомендуется использовать элементы строк «максимальный срок годности» и «номер лота».
Формат элемента строки
AI
Поля вспомогательных данных
2 2
Х1 переменная длина Х29
ТАБЛИЦА 14
AI 22 указывает, что поле данных содержит вспомогательные данные специальных фармацевтических продуктов. За подробной расшифровкой описания строки обращайтесь в EAN Moldova.
13. Номер лота (переходный) (AI 23n)
Номер лота торговой единицы.
Эта идентификатор используется в некоторых приложениях когда необходимо сцепить несколько строк переменной длины в один символ штрихового кода и когда FNC1 как разделитель не применим. В настоящее время он используется американской мясной индустрией вместо AI 10 (номер лота). Он рассматривается как временный системный элемент, который будет исключен в будущем.
Формат элемента строки
AI
Номер лота
2 3 n
N1 переменная длина N19
ТАБЛИЦА 15
AI 23n указывает, что поле данных содержит номер лота. Цифра «n» указывает длину поля согласно следующей формуле: количество цифр номера лота =2n + 1
Пример: представление номера лота 1 2 3 4 5 6 = (233) 1 2 3 4 5 6 7
Формула используется для определения длины строки в соединении с другими строками. Поле номера лота имеет переменную длину и всегда содержит нечетное
число цифр. Если первоначальный номер лота имеет четное число цифр, то добавляется лидирующий ноль.
Так как эти данные являются атрибутом конкретной торговой единицы, то они не должны обрабатываться самостоятельно, а только совместно с идентификационным номером торговой единицы, к которой они относится.
14. Дополнительная идентификация продукта, присваиваемая производителем (AI 240)
Дополнительный идентификационный номер торговой единицы, присваиваемая производителем.
Цель этого идентификатора - дать возможность идентификации товара номером, отличным от EAN/UCC идентификационного номера товара, для представления его в виде штрихового кода в системе EAN/UCC-128. Это ссылка на номера товаров ранее используемых каталогов. Дополнительная идентификация товара рассматривается как атрибут идентификационного номера EAN/UCC товара, например чтобы облегчить переход к EAN/UCC системе. Однако он не может быть использован вместо EAN/UCC идентификационного номера товара.
Формат элемента строки
AI
Дополнительная идентификация товара
2 4 0
Х1 переменная длина Х30
ТАБЛИЦА 16
AI 240 указывает, что поле данных содержит дополнительную идентификацию товара.
Поле дополнительного идентификационного номера является переменной длины и алфавитно-цифровые символы, находящиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3. Его содержание и структура оставлена на усмотрение компании применяющей эту строку.
15. Номер покупателя (AI 241)
Дополнительный идентификационный номер торговой единицы, присваиваемый производителем по заказу покупателя.
Цель этого идентификатора - дать возможность идентификации товара номером, отличным от EAN/UCC идентификационного номера товара, для представления его в виде штрихового кода в системе EAN/UCC-128. Он используется только между торговыми партнерами, которые в настоящее время используют его для заказа. Использование этого номера является временным, т.е. в дальнейшем он будет заменен идентификационным номером товара в системе EAN/UCC. Номер покупателя не может использоваться для замены EAN/UCC идентификационного номера товара.
Формат элемента строки
AI
Номер от покупателя
2 4 1
Х1 переменная длина Х30
ТАБЛИЦА 17
AI 241 указывает, что поле данных содержит номер покупателя.
Поле «номер покупателя» является строкой переменной длины, которая может включать любые символы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3.
16. Дополнительный серийный номер (AI 250)
Дополнительный серийный номер отдельной компоненты торговой единицы.
В то время как серийный номер, используемый идентификатором применения AI 21, содержит серийный номер торговой единицы, строка «Дополнительный серийный номер» представляет серийный номер отдельной компоненты товара. Он оставлен
компанией, применяющей эти данные, для определения к какой компоненте данной торговой единицы он относится. Смысл дополнительного серийного номера можно понять только в сочетании с идентификационным номером товара и его серийным номером. Если эта строка используется, то торговая единица должна быть маркирована следующими строками символов:
· AI 01 – представляющей идентификационный номер торговой единицы,
· AI 21 – представляющей серийный номер торговой единицы,
· AI 250 – представляющей серийный номер компоненты торговой единицы.
Следует заметить, что только одна строка с AI 250 может быть связана с конкретным идентификационным номером товара.
Формат элемента строки
AI
Дополнительный серийный номер
2 5 0
Х1 переменная длина Х30
ТАБЛИЦА 18
AI 250 указывает, что поле данных содержит дополнительный серийный номер.
Поле «дополнительный серийный номер» является строкой переменной длины, которая может включать любые символы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3. Этот номер, и к какой он компоненте относится, определяется производителем.
17. Количество единиц (AI 30)
Количество единиц товара в торговом блоке переменного размера
Этот идентификатор используется, чтобы полностью идентифицировать торговую единицу переменного размера. Он содержит число единиц товара, содержащееся в таком блоке и поэтому никогда не применяется отдельно
Формат элемента строки
AI
Количество единиц товара
3 0
N1 переменная длина N8
ТАБЛИЦА 19
AI30 указывает, что поле данных содержит количество единиц товара, содержащихся в торговом блоке переменного размера.
Поле «Количество единиц» является строкой переменной длины содержащей до 8 цифр. Этот номер, и к какой он компоненте относится, определяется производителем.
Примечание: Этот идентификатор не должен использоваться для указания количества единиц товара в торговом блоке фиксированного размера. Однако, если он нанесен на такой блок, то он должен показывать истинное количество единиц товара и может рассматриваться как излишняя информация.
18. Единицы измерения (AI 31nn, 32nn, 35nn, 36nn)
Единицы измерения торговых единиц переменного размера
Эта строка используется, чтобы полностью идентифицировать торговую единицу переменного размера. Она содержит информацию о весе, размерах, объеме и т.д и поэтому никогда не применяется отдельно. Применение нескольких строк возможно, если требуется указать размеры в различных системах (например, вес указывать в кг и фунтах)
Формат элемента строки
AI
Идентификатор объема
A1 A2 A3 A4
N1 N2 N3 N4 N5 N6
ТАБЛИЦА 20
Цифры А1,А2,А3 идентификатора применения (см. таблицу 21) указывают, что поле данных содержит количество или размер торгового блока переменного размера.
Цифра А4 указывает позицию десятичной точки, если эта цифра равна 0, то это означает, что нет десятичной точки, если цифра равна 1, то десятичная точка стоит между цифрами N5 и N6, и т.д.
Идентификаторы применения определяют поля данных в соответствии со следующей таблицей (21):
А1 А2 А3
Определение единицы измерения
Единица измерения
3 1 0
Чистый вес
Килограммы
3 1 1
Длина (первое измерение)
Метры
3 1 2
Ширина, диаметр (второе измерение)
Метры
3 1 3
Глубина, толщина, высота (3-е измерение)
Метры
3 1 4
Площадь
Кв. метры
3 1 5
Чистый объем
Литры
3 1 6
Чистый объем
Куб. метры
3 2 0
Чистый вес
Фунты
3 2 1
Длина (первое измерение)
Дюймы
3 2 2
Длина (первое измерение)
Футы
3 2 3
Длина (первое измерение)
Ярды
3 2 4
Ширина, диаметр (второе измерение)
Дюймы
3 2 5
Ширина, диаметр (второе измерение)
Футы
3 2 6
Ширина, диаметр (второе измерение)
Ярды
3 2 7
Глубина, толщина, высота (3-е измерение)
Дюймы
3 2 8
Глубина, толщина, высота (3-е измерение)
Футы
3 2 9
Глубина, толщина, высота (3-е измерение)
Ярды
3 5 0
Площадь
Кв. дюймы
3 5 1
Площадь
Кв. футы
3 5 2
Площадь
Кв. ярды
3 5 6
Чистый вес
Тройские унции
3 5 7
Чистый вес
Унции
3 6 0
Чистый объем
Кварты
3 6 1
Чистый объем
Галлоны (США)
3 6 4
Чистый объем
Куб. дюймы
3 6 5
Чистый объем
Куб. футы
3 6 6
Чистый объем
Куб. ярды
ТАБЛИЦА 21
Поле «применяемое значение» содержит значение переменного размера, применяемого к соответствующей торговой единице.
Данные, полученные в результате считывания сканером штрихового кода вышеописанной строки, означают, что количество, которое может рассматриваться как часть идентификации торговой единицы переменного размера, считаны и могут быть
обработаны только с идентификационным номером торговой единицы к которой они относятся.
Примечание: Остальные значения AI 3nnn определяют размеры всего груза или логистических величин.
18a. Логистические измерения (AI 33nn, 34nn, 35nn, 36nn)
Единицы измерения логистических величин (груза).
Система EAN/UCC предоставляет стандарты для веса и размеров всего груза в метрической и других системах измерения. В принципе каждое измерение логистической величины должно быть приведено только в одной системе измерения. Однако, измерение одного и того же атрибута груза в различных единицах не препятствует правильной обработке переданных данных.
Формат элемента строки
AI
Идентификатор объема
A1 A2 A3 A4
N1 N2 N3 N4 N5 N6
ТАБЛИЦА 22
Цифры А1,А2,А3 идентификатора применения (см. таблицу 23) указывают, что поле данных содержит количество или размер логистической единицы (груза).
Цифра А4 указывает позицию десятичной точки, если эта цифра равна 0, то это означает, что нет десятичной точки, если цифра равна 1, то десятичная точка стоит между цифрами N5 и N6, и т.д.
Идентификаторы применения определяют поля данных в соответствии со следующей таблицей (23):
А1 А2 А3
Определение единицы измерения
Единица измерения
3 3 0
Логистический вес
Килограммы
3 3 1
Длина (первое измерение)
Метры
3 3 2
Ширина, диаметр (второе измерение)
Метры
3 3 3
Глубина, толщина, высота (3-е измерение)
Метры
3 3 4
Площадь
Кв. метры
3 3 5
Логистический объем
Литры
3 3 6
Логистический объем
Куб. метры
3 4 0
Логистический вес
Фунты
3 4 1
Длина (первое измерение)
Дюймы
3 4 2
Длина (первое измерение)
Футы
3 4 3
Длина (первое измерение)
Ярды
3 4 4
Ширина, диаметр (второе измерение)
Дюймы
3 4 5
Ширина, диаметр (второе измерение)
Футы
3 4 6
Ширина, диаметр (второе измерение)
Ярды
3 4 7
Глубина, толщина, высота (3-е измерение)
Дюймы
3 4 8
Глубина, толщина, высота (3-е измерение)
Футы
3 4 9
Глубина, толщина, высота (3-е измерение)
Ярды
3 5 3
Площадь
Кв. дюймы
3 5 4
Площадь
Кв. футы
3 5 5
Площадь
Кв. ярды
3 6 2
Логистический объем
Кварты
3 6 3
Логистический объем
Галлоны (США)
3 6 7
Логистический объем
Куб. дюймы
3 6 8
Логистический объем
Куб. футы
3 6 9
Логистический объем
Куб. ярды
ТАБЛИЦА 23
Поле «применяемое значение» содержит значение переменного размера, применяемого к соответствующей торговой единице.
Данные, полученные в результате считывания сканером штрихового кода вышеописанных строк, означают, что размеры логистической единицы, считаны. Они должны обрабатываться с идентификационным номером (грузовой контейнерный код или идентификационный номер торговой единицы) нанесенным на тот же груз.
19. Килограммы на квадратный метр (AI 337n)
Давление в килограммах на один квадратный метр, производимое торговой единицей.
Эта строка используется, чтобы точно указать давление отдельной торговой единицей.
Формат элемента строки
AI
Килограммы на квадратный метр
3 3 7 n
N1 N2 N3 N4 N5 N6
ТАБЛИЦА 24
AI337 указывает, что поле данных определяет давление, производимое одной торговой единицей.
Цифра n указывает позицию десятичной точки, если эта цифра равна 0, то это означает, что нет десятичной точки, если цифра равна 1, то десятичная точка стоит между цифрами N5 и N6, и т.д.
Поле «Килограмм на квадратный метр» является строкой фиксированной длины содержащей 6 цифр. Единица измерения - килограммы.
Поскольку эти данные представляют атрибут торговой единицы, то они не могут обрабатываться отдельно, а только с идентификационным номером торговой единицы к которой они относятся.
20. Количество торговых единиц в грузе (AI 37)
Определение: Количество торговых единиц в логистическом блоке.
Пояснение: Эта строка является обязательным дополнением к AI 02.
Формат элемента строки
AI
Количество торговых единиц
3 7
N1 переменная длина N8
ТАБЛИЦА 25
AI37 указывает, что поле данных содержит количество торговых единиц, содержащихся в грузе.
Поле «Количество торговых единиц в грузе» является строкой переменной длины содержащей до 8 цифр. Этот номер относится к идентификатору торговых единиц содержащихся в грузе.
Данные могут быть обработаны только вместе с идентификационным номером торговой единицы, находящимся в поле данных AI 02, к которой они относятся.
21. Сумма, подлежащая к оплате – Одна валютная зона (AI 390n)
Сумма, подлежащая к оплате платежного требования, выраженная в местной валюте.
Чтобы избежать ошибок в обработке данного идентификатора применения рекомендуется использовать AI 391n, который указывает код валюты в которой эта сумма выражена.
Формат элемента строки
AI
Заявленная сумма к оплате
3 9 0 n
N1 переменная длина N8
ТАБЛИЦА 26
AI 390 указывает, что поле данных содержит сумму, подлежащую к оплате.
Цифра n указывает позицию десятичной точки, если эта цифра равна 0, то это означает, что нет десятичной точки, если цифра равна 1, то десятичная точка стоит последней цифрой, и т.д. Смотри примеры в таблице 3-44.
Поле «Сумма, подлежащая к оплате» содержит сумму необходимую выплатить согласно платежному требованию. Оно содержит до 15 цифр.
Так как эти данные являются атрибутами Номера платежного поручения и Глобального Адресного номера, то они не могут обрабатываться самостоятельно.
Пример индикации десятичной точки:
AI
Кодированное значение
Действительная величина
3902
1234567
12345.67
3901
1234567
123456.70
3900
12345
12345.00
ТАБЛИЦА 27
22. Сумма, подлежащая к оплате – с ISO кодом валюты (AI 391n)
Сумма, подлежащая к оплате платежного требования, выраженная в указанной кодом валюте.
Используются коды валют, указанные в стандарте ISO 4217.
Формат элемента строки
AI
ISO коды валют
Количество единиц товара
3 9 1 n
N1 N2 N3
N4 переменная длина N18
ТАБЛИЦА 28
Цифры AI 391 указывает, что поле данных содержит код валюты и сумму, подлежащую к оплате.
Цифра n указывает позицию десятичной точки в поле « сумма, подлежащая к оплате», и если она равна 0, то это означает, что нет десятичной точки, если цифра равна 1, то десятичная точка стоит последней цифрой, и т.д. Смотри примеры в таблице 3-46.
Поле ISO код страны содержит 3-хзначный номер валюты, выбираемый из международного стандарта ISO 4217 (данные доступны в Интернете), указывающий валюту, в которой сумма, подлежащая к оплате, выражена.
Поле «Сумма, подлежащая к оплате» содержит сумму необходимую выплатить согласно платежному требованию. Оно содержит до 15 цифр.
Так как эти данные являются атрибутами Номера платежного поручения и Глобального Адресного номера, то они не могут обрабатываться самостоятельно.
Пример индикации десятичной точки:
Идентификатор применения
Код валюты стандарта ISO
Кодированное значение
Действительная величина
3912
710 1)
1230
12.30
3911
710 1)
1230
123.00
3910
040 2)
123
123.00
ТАБЛИЦА 29
1) Южноафриканские ранды
2) Австрийские шиллинги
23. Сумма, подлежащая уплате за торговую единицу переменного веса. Одна валютная зона (AI 392n)
Применяется в случае, когда сумма, подлежащая уплате, выражается в локальной валюте. Этот идентификатор является атрибутом глобального идентификационного номера товара (GTIN) и поэтому всегда должен использоваться вместе с ним.
Формат элемента строки
AI
Заявленная сумма к оплате
3 9 2 n
N1 переменная длина N15
ТАБЛИЦА 30
Цифры идентификатора применения 392 указывают на то, что поле данных содержит значение суммы, подлежащей уплате за товар переменного веса.
Цифра n указывает позицию десятичной точки. Когда цифра равна 0, это означает, что в поле данных нет десятичной точки, цифра 1 означает, что десятичная точка находится перед последней позицией указанной суммы.
Поле “заявленная сумма к оплате” содержит сумму, которую необходимо выплатить за товар переменного веса.
Замечание: В будущем этот элемент строки может изображаться в символиках RSS или (и) Composite/
Поскольку это число является атрибутом идентификационного номера товара, то оно обрабатывается только вместе с этим номером.
Пример индикации десятичной точки:
Идентификатор применения
Кодированное значение
Действительная величина
3922
1234567
12345.67
3921
1234567
123456.70
3920
12345
12345.00
ТАБЛИЦА 31
24. Сумма, подлежащая уплате за торговую единицу переменного веса. Вместе с кодом ISO валютной зоны (AI 393n)
Применяется в случае, когда сумма, подлежащая уплате, выражается в указанной валюте. Этот идентификатор является атрибутом глобального идентификационного номера товара (GTIN) и поэтому всегда должен использоваться вместе с ним.
Формат элемента строки
AI
ISO коды валют
Сумма заявленная к оплате
3 9 3 n
N1 N2 N3
N4 переменная длина N18
ТАБЛИЦА 32
Цифры идентификатора применения 393 указывают на то, что поле данных содержит ISO код валюты и значение суммы, подлежащей уплате за товар переменного веса.
Цифра n указывает позицию десятичной точки. Когда цифра равна 0, это означает, что в поле данных нет десятичной точки, цифра 1 означает, что десятичная точка находится перед последней позицией указанной суммы.
Поле «ISO код валюты» содержит трехзначное число – код валюты из международного стандарта ISO/IEC 4217 (данные доступны в Интернете).
Поле “сумма заявленная к оплате” содержит сумму, которую необходимо выплатить за товар переменного веса.
Замечание: В будущем этот элемент строки может изображаться в символиках RSS или (и) Composite/
Поскольку это число является атрибутом идентификационного номера товара, то оно обрабатывается только вместе с этим номером.
Пример индикации десятичной точки:
Идентификатор применения
Код валюты стандарта ISO
Кодированное значение
Действительная величина
3932
710 1)
1230
12.30
3931
710 1)
1230
123.00
3930
040 2)
123
123.00
ТАБЛИЦА 33
1) Южноафриканские ранды
2) Австрийские шиллинги
25. Номер заявки покупателя на покупку (AI 400)
Номер заявки покупателя на покупку используется только между двумя торговыми партнерами
Формат элемента строки
AI
Номер заявки покупателя на покупку
4 0 0
X1 переменная длина X30
ТАБЛИЦА 34
AI 400 указывает, что поле данных содержит номер заявки покупателя на покупку.
Поле «Номер заявки покупателя на покупку» является строкой переменной длины, которая может включать любые символы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3. Поле содержит номер заявки на покупку указанный компанией-покупателем. Состав номера и его содержимое оставлено на усмотрение покупателя.
Данные могут обрабатываться самостоятельно или вместе с идентификационными данными той же торговой единицы.
Предупреждение: Эта строка должна быть удалена с торговой единицы, прежде чем груз покинет пределы покупателя.
26. Номер накладной (коносамента) (AI 401)
Номер накладной назначается перевозчиком или, по предварительному согласованию с перевозчиком, отправителем груза для того, чтобы идентифицировать логическую группу (одну или более физических единиц) товара, рассматриваемую как единое целое в процессе транспортировки.
ФОРМАТ ЭЛЕМЕНТА СТРОКИ
AI
Номер накладной
EAN/UCC префикс комапании Информация накладной
4 0 1
N1 … Ni Xi+1… переменная длина Xj (j<=30)
ТАБЛИЦА 35
AI 401 указывает, что поле данных содержит номер накладной (коносамента).
Поле «Номер накладной» содержит EAN/UCC префикс компании перевозчика и информацию о накладной. Структура этой информации, следующей за префиксом компании, оставлена на усмотрение пользователя этими данными. Поле является строкой переменной длины, которая может включать любые символы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3.
Данные могут обрабатываться самостоятельно или вместе с идентификационными данными той же торговой единицы.
Замечание: Если новый коносамент создается, то строка, содержащая предыдущий номер накладной, должна быть удалена с торговой единицы.
27. Идентификационный номер груза (AI 402)
ФОРМАТ ЭЛЕМЕНТА СТРОКИ
AI
Идентификационный номер груза
EAN/UCC префикс комапании Ссылка поставщика
Контр. число
4 0 2
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16
N17
Идентификационный номер груза назначается отправителем груза. Он представляет уникальный номер, который идентифицирует логическую группировку физических единиц, рассматриваемую как единое целое в процессе транспортировки. Он может использоваться всеми участниками цепи движения груза как коммуникационная ссылка.
ТАБЛИЦА 36
AI 402 указывает, что поле данных содержит идентификационный номер груза.
Поле «Номер накладной» содержит EAN/UCC префикс компании отправителя и ссылку на отправителя, указываемую отправителем груза. Поле является строкой содержащей 16 цифр.
Контрольная цифра вычисляется по алгоритму, приведенному в Приложении 1. Ее проверка, осуществляемая программно, обеспечивает правильность составления поля.
Данные могут обрабатываться самостоятельно или вместе с идентификационными данными на той же торговой единице.
Замечание: Рекомендуется присваивать номера последовательно.
28. Код маршрута (AI 403)
Код маршрута назначается отдельным перевозчиком и он является атрибутом грузового контейнерного кода. Он предназначен для адаптации ранее принятых международных решений. Код маршрута не должен использоваться для кодирования данных, для которых уже существуют другие идентификаторы применения (такие, например, как «Доставить в» Почтовый код).
Формат элемента строки
AI
Код маршрута
4 0 3
X1 переменная длина X30
ТАБЛИЦА 37
AI 403 указывает, что поле данных содержит код маршрута.
Поле «Код маршрута» является строкой переменной длины, которая может включать любые символы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3. Ее содержимое и структуру определяет перевозчик, составивший этот код. Если группа отдельных перевозчиков желают заключить соглашение об использовании единого кода маршрута, то согласованный индикатор должен определять структуру кода маршрута.
Данные должны обрабатываться вместе с серийным грузовым контейнерным кодом, нанесенным на тот же груз.
29. «Доставить-вручить» EAN/UCC Глобальный адресный номер
(AI 410)
EAN/UCC Глобальный адресный номер получателя груза.
Поле данных представляет собой стандартный EAN/UCC-13 номер.
Формат элемента строки
AI
EAN/UCC префикс комапании Адресная ссылка
Контр. число
4 1 0
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12
N13
ТАБЛИЦА 38
AI 410 указывает, что поле данных содержит EAN/UCC Глобальный адресный номер грузополучателя.
EAN/UCC префикс компании является частью идентификационного номера адреса компании, для того, чтобы сделать его уникальным.
Ссылка на размещение определяется компанией-адресатом.
Контрольная цифра определяется по алгоритму, определенному в приложении 1. Она проверяется программно, чтобы быть уверенным в правильном составлении строки.
Данные должны обрабатываться отдельно или вместе с другой соответствующей информацией.
30. «Счет-фактура» EAN/UCC Глобальный адресный номер (AI 411)
EAN/UCC Глобальный адресный номер адресата платежного требования.
Поле данных представляет собой стандартный EAN/UCC-13 номер.
Формат элемента строки
AI
EAN/UCC префикс комапании Адресная ссылка
Контр. число
4 1 1
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12
N13
ТАБЛИЦА 39
AI 411 указывает, что поле данных содержит EAN/UCC Глобальный адресный номер адресата платежного поручения.
EAN/UCC префикс компании является частью идентификационного номера адреса адресата для того, чтобы сделать его уникальным.
Ссылка на размещение определяется компанией-адресатом.
Контрольная цифра определяется по алгоритму, определенному в приложении 1. Она проверяется программно, чтобы быть уверенным в правильном составлении строки.
31. «Закуплено у» EAN/UCC Глобальный адресный номер (AI 412)
EAN/UCC Глобальный адресный номер поставщика груза.
Поле данных представляет собой стандартный EAN/UCC-13 номер.
Формат элемента строки
AI
EAN/UCC префикс комапании Адресная ссылка
Контр. число
4 1 2
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12
N13
ТАБЛИЦА 40
AI 412 указывает, что поле данных содержит EAN/UCC Глобальный адресный номер поставщика товара.
EAN/UCC префикс компании является частью идентификационного номера адреса компании для того, чтобы сделать его уникальным.
Ссылка на размещение определяется компанией-поставщиком.
Контрольная цифра определяется по алгоритму, определенному в приложении 1. Она проверяется программно, чтобы быть уверенным в правильном составлении строки.
Данные должны обрабатываться отдельно или вместе с другой соответствующей информацией.
32. «Груз для, Поставка для, Переслать » EAN/UCC Глобальный адресный номер (AI 413)
EAN/UCC Глобальный адресный номер компании, являющейся промежуточным или конечным пунктом доставки груза.
Поле данных представляет собой стандартный EAN/UCC-13 номер.
Формат элемента строки
AI
EAN/UCC префикс комапании Адресная ссылка
Контр. число
4 1 3
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12
N13
ТАБЛИЦА 41
AI 413 указывает, что поле данных содержит EAN/UCC Глобальный адресный номер промежуточного или конечного пункта поставки товара.
EAN/UCC префикс компании является частью идентификационного номера адреса компании для того, чтобы сделать его уникальным.
Ссылка на размещение определяется компанией-поставщиком.
Контрольная цифра определяется по алгоритму, определенному в приложении 1. Она проверяется программно, чтобы быть уверенным в правильном составлении строки.
Данные могут обрабатываться отдельно или вместе с другой соответствующей информацией.
Замечание: Эта строка используется грузополучателем для внутренних нужд и не используется перевозчиком.
33. Идентификация места размещения, EAN/UCC Глобальный адресный номер (AI 414)
EAN/UCC Глобальный адресный номер применяется для идентификации места размещения (адреса) компании.
Поле данных представляет собой стандартный EAN/UCC-13 номер.
Формат элемента строки
AI
EAN/UCC префикс комапании Адресная ссылка
Контр. число
4 1 4
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12
N13
ТАБЛИЦА 42
AI 414 указывает, что поле данных содержит EAN/UCC Глобальный адресный номер места размещения.
EAN/UCC префикс компании является частью идентификационного номера адреса компании для того, чтобы сделать его уникальным.
Ссылка на размещение определяется собственником или пользователем указанного адреса.
Контрольная цифра определяется по алгоритму, определенному в приложении 1. Она проверяется программно, чтобы быть уверенным в правильном составлении строки.
Данные могут обрабатываться согласно конкретным требованиям приложения.
34. EAN/UCC Глобальный адресный номер стороны, выставившей счет (AI 415)
EAN/UCC Глобальный адресный номер стороны, выставившей счет, используется на платежных требованиях.
Поле данных представляет собой стандартный EAN/UCC-13 номер. Он является необходимой информацией на платежном требовании. Вместе с номером платежного поручения они уникально идентифицируют платежное поручение.
Формат элемента строки
AI
EAN/UCC префикс комапании Адресная ссылка
Контр. число
4 1 5
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12
N13
ТАБЛИЦА 43
AI 415 указывает, что поле данных содержит EAN/UCC Глобальный адресный номер стороны, выставившей счет.
EAN/UCC префикс компании является частью идентификационного номера адреса компании для того, чтобы сделать его уникальным.
Ссылка на адрес определяется стороной, выставившей счет.
Контрольная цифра определяется по алгоритму, определенному в приложении 1. Она проверяется программно, чтобы быть уверенным в правильном составлении строки.
Данные должны обрабатываться вместе с номером платежного поручения.
35. «Доставить-вручить» Почтовый код в пределах одной страны (AI 420)
Формат элемента строки
AI
Почтовый код
4 2 0
X1 переменная длина X20
ТАБЛИЦА 44
AI 420 указывает, что поле данных содержит почтовый код адресата в национальном формате.
Поле «Почтовый код» содержит почтовый код адресата, определенный почтовым ведомством страны. Он выровнен по левому краю и не должен содержать каких-либо дополнительных символов.
Обычно почтовый код обрабатывается отдельно.
36. «Доставить-вручить» Почтовый код с 3-х значным почтовым кодом страны по ISO (AI 421)
Почтовый код страны (ISO стандарт 3166) и национальный почтовый код адресата.
Формат элемента строки
AI
ISO коды валют
Почтовый код
4 2 1
N1 N2 N3
X4 переменная длина X12
ТАБЛИЦА 45
AI 421 указывает, что поле данных содержит почтовый код адресата в международном формате.
Поле «Почтовый код страны» содержит 3 цифровой код страны, определенный стандартом ISO 3166 ) (Данные доступны в Интернете).
Поле «Почтовый код» содержит почтовый код адресата, определенный почтовым ведомством страны. Он выровнен по левому краю и не должен содержать каких-либо дополнительных символов.
Обычно международный почтовый код обрабатывается отдельно.
37. Страна происхождения торговой единицы (AI 422)
Почтовый код страны, определенный стандартом ISO 3166
Формат элемента строки
AI
ISO код страны
4 2 2
N1 N2 N3
ТАБЛИЦА 46
AI 422 указывает, что поле данных содержит почтовый код страны происхождения товарной единицы.
Поле «Почтовый код страны» содержит 3-х значный код страны происхождения товара, определенный стандартом ISO 3166 ) (Данные доступны в Интернете).
Замечание: Обычно под термином «Страна происхождения товара» понимают страну, в которой товар изготовлен. Однако, в связи с тем, что этот термин определен по- разному для различных целей, то ответственность за использование этого термина возлагается на производителя.
38. Страна начальной обработки (AI 423)
Формат элемента строки
AI
ISO код страны
4 2 3
N1 N2 N3 … N 15
ТАБЛИЦА 47
Идентификатор применения 423 указывает, что поле данных содержит коды ISO стран, в которых производилась начальная обработка торговой единицы.
Поле «ISO код страны» содержит трехзначное число – код страны из международного стандарта ISO 3166 (данные доступны в Интернете).
Замечание: Обычно страна начальной обработки является страной, произведшей этот товар. Однако, для некоторых товаров необходимо указывать до пяти различных стран начального производства товара (например, страны в которых производился откорм скота). Ответственность за заполнение этого поля лежит на поставщике товара.
39. Страна переработки (AI 424)
Формат элемента строки
AI
ISO код страны
4 2 4
N1 N2 N3
ТАБЛИЦА 48
Идентификатор применения 424 указывает, что поле данных содержит код ISO страны, в которой производилась обработка торговой единицы.
Поле «ISO код страны» содержит трехзначное число – код страны из международного стандарта ISO 3166 (данные доступны в Интернете).
Замечание: Ответственность за заполнение этого поля лежит на поставщике товара.
40. Страна распаковки (AI 425)
Формат элемента строки
AI
ISO код страны
4 2 5
N1 N2 N3
ТАБЛИЦА 49
Идентификатор применения 425 указывает, что поле данных содержит код ISO страны, в которой производилась распаковка торговой единицы.
Поле «ISO код страны» содержит трехзначное число – код страны из международного стандарта ISO 3166 (данные доступны в Интернете).
Замечание: Ответственность за заполнение этого поля лежит на стороне, производящей распаковку товара.
41. Инвентарный номер NATO (AI 7001)
Идентификация, классификация и нумерация товаров, поставляемых через альянс NATO.
Формат элемента строки
AI
NATO классификация Код страны Серийный номер
снабжения
7 0 0 1
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13
ТАБЛИЦА 50
Идентификатор применения 7001 указывает, что поле данных содержит инвентарный номер имущества NATO.
Инвентарный номер присваивается любому товару, поставляемому через альянс NATO. Ответственность за назначением номера товару лежит на производителе товара или создателе дизайна.
Замечание: Этот идентификатор используется только в рамках снабжения товарами альянса. Использование номеров определяется правилами и предписаниями Комитета Альянса 135.
42. UN/ECE классификация мясных туш и их разделки (AI 7002)
Формат элемента строки
AI
UC/ECE классификация продуктов
7 0 0 2
X1 переменная длина X30
ТАБЛИЦА 51
Идентификатор применения 7002 указывает, что поле данных содержит классификацию, используемую международной организацией ECE.
UN/ECE код классификации мясных туш и их разделки представляет собой строку переменной длины, содержащей буквенно-цифровые символы. Он является атрибутом глобального идентификационного номера товара, указанного в описании товара.
Замечание: Этот идентификатор используется только в контексте стандартов организации UN/ECE для оценки качества мясных туш и их разделки (КРС, свинина, баранина, козлятина).
43. Рулонные товары – Толщина, длина, диаметр, направление обмотки, сращивание (AI 8001)
Измерения и другие величины рулонного товара.
Вследствие того, что некоторые рулонные товары не могут нумероваться стандартными методами, определенными ранее, то они рассматриваются как товары с переменными размерами. Для этих товаров, где стандартные измерители товара не достаточны, предлагается следующий ниже формат строки.
Идентификация таких товаров состоит из глобального идентификационного номера товарной единицы и переменных, содержащих данные о конкретном товаре.
Формат элемента строки
AI
Переменный объем рулонных товаров (описание см. выше)
8 0 0 1
N1 N2 N3 N4
N5 N6 N7 N8 N9
N10 N11 N12
N13
N14
ТАБЛИЦА 52
AI 8001 указывает, что поле данных содержит значения переменных рулонных продуктов.
Поле данных рулонного товара состоит из следующих значений:
N1 - N4 толщина рулона в миллиметрах.
N5 - N9 длина в метрах
N10 – N12 внутренний диаметр жилы в миллиметрах
N13 – направление обмотки (с начала – 0, с конца – 1, неопределено – 9)
N14 – число сращиваний (от 0 до 8 – действительное количество, 9 – неизвестно)
Данные могут быть обработаны совместно с соответствующим идентификационным номером.
44. Идентификационный номер мобильного телефона (AI 8002)
Электронный серийный номер сотового мобильного телефона ограниченного географического действия
Формат элемента строки
AI
Серийный номер
8 0 0 2
X1 переменный X20
ТАБЛИЦА 53
AI 8002 указывает, что поле данных содержит серийный номер сотового мобильного телефона.
Поле «серийный номер» является строкой переменной длины, которая может включать любые символы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3. Этот номер назначают лица, облеченные таким правом на национальном или на мультинациональном уровне. Он идентифицирует каждый мобильный телефон уникально в определенном районе для определенных контрольных целей. Он не рассматривается как атрибут идентификационного номера телефона как товара.
Данные могут обрабатываться согласно частным требованиям приложения.
45. Глобальный номер оборотной тары (AI 8003)
EAN/UCC идентификационный номер оборотной тары как физической единицы без ссылки на содержимое.
Идентификационный номер имущества базируется на структуре стандартного номера EAN/UCC-13 или UCC-12.
Формат элемента строки
AI
Идентификационный номер активов
Серийный номер (выборочно)
EAN/UCC префикс компании Актив
Контр. число
8 0 0 3
0 0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11
N12
X1пeремен X16
8 0 0 3
0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12
N13
X1 пeремен. X16
UCC-12
EAN/
UCC-13
ТАБЛИЦА 54
AI 8003 указывает, что поле данных содержит глобальный номер оборотного имущества (тары).
EAN/UCC префикс компании присваивается собственником имущества. Эта компонента структуры нумерации EAN/UCC используется для того, чтобы сделать номер уникальным. Нуль(и) добавляются слева чтобы длина поля была равна 14 цифрам, как идентификационный номер имущества.
Тип имущества – номер, назначаемый собственником имущества, для идентификации каждого типа имущества.
Контрольная цифра определяется по алгоритму, приведенному в Приложении 1. Она обрабатывается программным путем, чтобы обеспечить корректность сборки строки.
Необязательное поле «серийный номер» назначается собственником имущества. Оно определяет отдельное имущество в рамках данного тAIа. Поле является строкой переменной длины, которая может включать любые символы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3.
Данные могут обрабатываться согласно некоторым требованиям приложения.
46. Глобальный номер индивидуального имущества (AI 8004)
EAN/UCC идентификационный номер индивидуального имущества.
Этот номер может использоваться для уникальной идентификации имущества, чтобы дать способ хранения соответствующих данных. Этот номер не должен использоваться для идентификации вещи как торговой единицы или груза. Однако им могут обмениваться партнеры по обмену в целях отслеживания.
Формат элемента строки
AI
Индивидуальный номер имущества
EAN/UCC префикс комапании Индивидуальный номер имущества
8 0 0 4
N1 …. Ni Xi+1… переменная длина Xj (j<=30)
ТАБЛИЦА 55
AI 8004 указывает, что поле данных Глобальный номер индивидуального имущества
Индивидуальный номер имущества использует EAN/UCC префикс компании -собственницы имущества. Структура и нумерация ссылки на индивидуальное имущество определяется держателем префикса компании. Поле является строкой переменной длины, которая может включать любые символы, содержащиеся в таблице 1 международного стандарта ISO/IEC 646, приведенного в приложении 3.
Данные могут обрабатываться согласно некоторым требованиям приложения.
47. Цена единицы измерения товара (AI 8005)
Цена единицы измерения товара переменного размера с ограничением использования между торговыми партнерами.
Эта строка используется для указания цены единицы измерения товара переменного размера, чтобы отличить варианты цены одного и того товара. Он рассматривается как атрибут соответствующей торговой единицы, а не части ее идентификации.
Формат элемента строки
AI
Цена за единицу или вес
8 0 0 5
N1 N2 N3 N4 N5 N6
ТАБЛИЦА 56
AI 8005 указывает, что поле данных содержит цену единицы товара.
Содержание и структура поля оставлены на усмотрение торговых партнеров.
Данные должны всегда декодироваться и обрабатываться вместе с идентификационным номером торговой единицы.
48. Идентификация компонент торговой единицы (AI 8006)
EAN/UCC идентификация торговой единицы фиксированного размера, упакованного в отдельные пакеты.
Формат элемента строки
AI
GTIN
Относительный номер компоненты
Количество компонент
8 0 0 6
N1 N2 N3 …………………N11 N13 N14
N15 N16
N17 N18
ТАБЛИЦА 57
AI 8006 указывает, что поле данных содержит идентификацию торговой единицы и перечисление ее компонент.
Идентификационный номер – это номер целой торговой единицы.
Поле «относительный номер» определяет последовательный номер отдельной компоненты товара. Компонента данной торговой единицы должна быть идентичной соответствующей торговой единицы.
Поле «количество» показывает общее число компонент торговой единицы.
Контрольная цифра определяется по алгоритму, определенному в приложении 1. Она проверяется программно, чтобы быть уверенным в правильном составлении строки.
Данные могут обрабатываться согласно некоторым требованиям приложения.
49. Международный номер банковского счета (AI 8007)
Международный номер банковского счета определен в стандарте ISO 13616 для использования на платежных документах.
Формат элемента строки
AI
Международный номер банковского счета
8 0 0 7
X1 переменный X30
ТАБЛИЦА 58
AI 8007 указывает, что поле данных содержит Международный номер банковского счета.
Международный номер банковского счета, определенный в стандарте ISO 13616, на чей счет сумма в платежном поручении должна быть переведена. Этот номер указан в
счете. Поле имеет переменную длину и содержит символы из таблицы1 международного стандарта ISO/IEC 646, приведенной в приложении 3.
Данные должны обрабатываться вместе со ссылочным номером платежного поручения и глобальным адресным номером, указанным в том же счете.
50. Дата и время производства (AI 8008)
Формат элемента строки
AI
Дата и Время Производства
ГГ
ММ
ДД
ЧЧ
ММ
СС
8 0 0 8
N1 N2
N3 N4
N5 N6
N7 N8
N9 N10
N10 N11
ТАБЛИЦА 59
Идентификатор применения 8008 указывает, что поле данных содержит дату и время выпуска продукции.
Дату и время производства или сборки продукции определяет производитель. Оно может относиться к самой торговой единице или к товару, содержащемуся в грузе.
Структура:
Год – последние две цифры года (например, 1997=97). Обязательно указывается.
Месяц- это номер месяца (например, январь=01). Обязательно указывается.
День- номер дня соответствующего месяца (например, второй день = 02). Обязательно указывается.
Час – номер часа в локальной системе времени (например, 2 часа после полудня = 14). Обязательно указывается.
Минуты – могут не указываться, если не требуется.
Секунды – могут не указываться, если не требуется.
Так как дата сохранности является атрибутом конкретной торговой единицы, то она не должна обрабатываться самостоятельно, а только совместно с идентификационным номером торговой единицы, к которой она относится.
Замечание: Если год изготовления больше 50, то товар изготовлен в 20 веке, а если меньше, то товар изготовлен в 21 веке.
51. Глобальный номер для услуг (AI 8018)
EAN/UCC идентификационный номер оказываемых услуг, определяемый провайдером.
Этот номер используется для идентификации клиента в некоторой службе оказания услуг. Он дает возможность провайдеру хранить информацию о перечне услуг, оказанных клиенту.
Формат элемента строки
AI
Глобальный номер для услуг
Контр. число
EAN/UCC префикс комапании Ссылка на услугу
8 0 1 8
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17
N18
ТАБЛИЦА 60
AI 8018 указывает, что поле данных содержит глобальный номер для услуг.
EAN/UCC префикс компании присваивается провайдером услуг. Эта компонента структуры нумерации EAN/UCC используется для того, чтобы сделать номер уникальным.
Ссылка на услугу определяется провайдером. Структура и содержимое номера ссылки остается на усмотрении конкретного провайдера услуг.
Контрольная цифра вычисляется по алгоритму, приведенному в Приложении 1. Ее верификация, выполняемая программными средствами, обеспечивает правильность составления номера.
Данные могут обрабатываться согласно требованиям конкретного приложения.
52 Ссылочный номер платежного требования (AI 8020)
Ссылочный номер платежного требования.
Формат элемента строки
AI
Ссылочный номер платежного требования
8 0 20
X1 переменный X25
ТАБЛИЦА 61
AI 8020 указывает, что поле данных содержит ссылочный номер платежного требования.
Ссылочный номер платежного требования определяется стороной, выставляющей счет для идентификации платежного требования. Вместе с ее глобальным адресным
номером документ получает полную идентификацию. Поле имеет переменную длину и использует символы международного стандарта ISO/IEC 646, приведенные в Таблице1 Приложения 3.
Данные должны обрабатываться вместе с глобальным адресным номером стороны, выставившем счет на том же бланке платежного требования.
53 Расширенный код купона (AI 8100-8102)
Расширенный код купона дополняет UCC идентификацию купонов и используется в Северной Америке.
Формат элемента строки
AI
Допол.
цифра
UCC
префикс
Код услуги
Дата истечения срока (месяц+год)
8 1 0 0
N1
N2 N3 N4 N5 N6
8 1 0 1
N1
N2 N3 N4 N5 N6
N7 N8 N9 N10
8 1 0 2
0
N2
ТАБЛИЦА 62
AI 8100-8102 указывает, что поле данных содержит дополнительные данные к UCC идентификационному номеру купона.
Дополнительный 0 используется в AI 8102 для того, чтобы число цифр было четным.
UCC префикс указывает тAI потребительского товара в системе UPC-12. Для купонов обычно используется цифра 5.
Код предложения назначается издателем купонов и служит для определения некоторого поощрения.
Дата истечения срока указывает конец периода выкупа купона..
54. Информация по согласованию между торговыми партнерами (AI 90)
Любого вида информация, согласованная между торговыми партнерами с ограничением использования только между ними.
Формат элемента строки
AI
Ссылочный номер платежного требования
9 0
X1 переменная длина X30
ТАБЛИЦА 63
AI 90 указывает, что поле данных содержит информацию обоюдно согласованную между торговыми партнерами.
Поле данных содержит данные согласованные торговыми партнерами.. Поле имеет переменную длину и использует символы международного стандарта ISO/IEC 646, приведенные в Таблице1 Приложения 3. Данные могут использоваться вместе с данными, представленными идентификаторами FACT.
Данные могут обрабатываться способами, ранее оговоренными между торговыми партнерами.
Предупреждение: Штриховой код, содержащий строку с AI 90 должен быть убран с любого товара, покидающего подведомственную область торговых партнеров.
55 Внутренняя информация компании (AI 91 - 99)
Формат элемента строки
AI
Поле данных
A1 A2
X1 переменная длина X30
ТАБЛИЦА 64
Значениями числа А1 А2 являются числа от 91 до 99.
Поле данных может содержать любую внутреннюю информации компании. Поле имеет переменную длину и использует символы международного стандарта ISO/IEC 646, приведенные в Таблице1 Приложения 3.
Процесс обработки данных определяется компанией.
Предупреждение: Штриховой код, содержащий строку с AI 91 до AI 99 должен быть убран с любого товара, покидающего подведомственную территорию компании.
ПРИЛОЖЕНИЕ 1. ВЫЧИСЛЕНИЕ КОНТРОЛЬНОЙ ЦИФРЫ.
Ниже приводится стандартная процедура вычисления контрольной цифры в системе
нумерации EAN/UCC.
Позиции цифр
EAN/
UCC-8
N1
N2
N3
N4
N5
N6
N7
N8
UCC-12
N1
N2
N3
N4
N5
N6
N7
N8
N9
N10
N11
N12
EAN/
UCC-13
N1
N2
N3
N4
N5
N6
N7
N8
N9
N10
N11
N12
N13
EAN/
UCC-14
N1
N2
N3
N4
N5
N6
N7
N8
N9
N10
N11
N12
N13
N14
18-ти значн.
N1
N2
N3
N4
N5
N6
N7
N8
N9
N10
N11
N12
N13
N14
N15
N16
N17
N18
Множители для каждой позиции
x3
x1
x3
x1
x3
x1
x3
x1
x3
x1
x3
x1
x3
x1
x3
x1
x3
Суммирование результатов = Сумма
Вычитание Сумма из ближайшего числа,
кратного 10 = Контрольная цифра
ТАБЛИЦА 65
Пример расчет контрольного числа для 18-тизначного поля
N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17 N18
Номер без ко
нтрольной
цифры
3
7
6
1
0
4
2
5
0
0
2
1
2
3
4
5
6
Шаг 1:
Умножить
на
x
3
x
1
x
3
x
1
x
3
x
1
x
3
x
1
x
3
x
1
x
3
x
1
x
3
x
1
x
3
x
1
x
3
Шаг 2:
сложить
результат
=
9
=
7
=
18
=
1
=
0
=
4
=
6
=
5
=
0
=
0
=
6
=
1
=
6
=
3
=
12
=
5
=
18
=101
Шаг 3: Вычитание суммы из ближайшего числа кратного 10 (110) = Контр. Цифра (9)
Номер с кон
трольной
цифрой
3
7
6
1
0
4
2
5
0
0
2
1
2
3
4
5
6
9
ТАБЛИЦА 66
Вычисление контрольной цифры для полей, содержащих цену или вес.
Чтобы увеличить безопасность чтения цены или веса с символа штрихового кода, контрольная цифра для этих полей вычисляется по алгоритму, описанному ниже.
Основной принцип вычисления контрольной цифры состоит в том, что каждая цифра в поле цена или вес умножается на свой весовой фактор и полученная сумма «весов» обрабатывается. Весовыми факторами являются 2-,3,5+.5-.
Таблицы «весов» для каждого весового фактора приводятся ниже.
ТАБЛИЦА для весового фактора 2-
Правило вычисления: цифра умножается на 2. Если результат двузначный, цифра
десятков вычитается из цифры единиц. Эта разница является «весом»
Цифры
«Веса»
0
0
1
2
2
4
3
6
4
8
5
9
6
1
7
3
8
5
9
7
ТАБЛИЦА для весового фактора 3
Правило вычисления: Цифра умножается на 3. Цифра единиц результата является
«весом»
Цифры
Веса
0
0
1
3
2
6
3
9
4
2
5
5
6
8
7
1
8
4
9
7
ТАБЛИЦА для весового фактор 5+
Правило вычисления: Цифра умножается на 5. Цифра единиц результата и цифра десят-
ков складываются вместе. Эта сумма является «весом»
Цифры
Веса
0
0
1
5
2
1
3
6
4
2
5
7
6
3
7
8
8
4
9
9
ТАБЛИЦА для весового фактор 5-
Правило вычисления: Цифра умножается на 5. Цифра десятков результата вычитается
из цифр единиц. Разница является «весом»
Цифры
Веса
0
0
1
5
2
9
3
4
4
8
5
3
6
7
7
2
8
6
9
1
Расчет контрольного числа для 4-значного поля цены
Весовые факторы
Позиция цифры
Весовой фактор
1
2-
2
2-
3
3
4
5-
Расчет шаг 1: Определяем «веса» для каждой цифры в позициях от 1 до 4, согласно назначенным весовым факторам.
Расчет шаг 2: Складываем результаты шага 1.
Расчет шаг 3: Умножаем результат шага 2 на 3. Число единиц результата является контрольной цифрой.
Пример расчета контрольного числа
Позиция поля цены 1 2 3 4
Назначенный весовой фактор 2- 2- 3 5-
Цена 2 8 7 5
Шаг 1: Веса согласно
таблиц 4 5 1 3
Шаг 2: Сумма + + + + = 13
Шаг 3: Умножить на 3 = 3 9
Позиция контрольного числа
Расчет контрольной цифры для 5-тизначного поля цены
Назначенный весовой фактор
Позиции цифр
Весовой фактор
1
2-
2
2-
3
3
4
5+
5
2-
Расчет шаг 1: Определяем «вес» для каждой цифры, стоящей в позиции от 1 до 5, согласно назначенным весовым факторам
Расчет шаг 2: Складываем результаты шага 1.
Расчет шаг 3: Вычитаем результат из ближайшего равного или большего числа, кратного. 10
Расчет шаг 4: Находим цифру равную результату из строки «веса» в таблице «весовой фактор 5-». Контрольная цифра является числом в строке цифры того же столбца.
Пример расчета контрольного числа
Позиция поля цены 1 2 3 4 5
Назначенный весовой фактор 5+ 2- 5- 5+ 2-
Цена 1 4 6 8 5
Шаг 1: «Веса» согласно
таблицам 5 8 7 4 9
Шаг 2: Сумма + + + + + = 33
Шаг 3: Результат вычитания (40-33) = 7
Шаг 4: «Вес» 7 в таблице факторов 5- указывает цифру 6, которая и является
Контрольной цифрой
ПРИЛОЖЕНИЕ 2. UCC-12 ИДЕНТИФИКАЦИОННЫЕ НОМЕРА В СИМВОЛИКЕ UPC-E.
Идентификационные номера товара в системе UCC-12, начинающиеся с префикса 0 могут быть представимы в виде сокращенного штрихового кода – UPC-E. 12-значный номер UCC-12 “сворачивается” в штриховой код, содержащий символы всего 6 цифр. Для обработки в прикладных программах сокращенный номер необходимо “развернуть” в полную длину, т.к. 6-значного номера товара в системе UPC-E нет.
UCC-12 идентификационный номер торговой единицы
Представление в
системе UPC-E
Префикс компании
Ссылочный номер единицы
Контр. число
Позиции
N1 N2 N3 N4 N5 N6
N7 N8 N9 N10 N11
N12
1 2 3 4 5 6
(0) 0 0 0 0 0 1
(0) 0 9 9 9 9 9
= 5 номеров UPC-E
0 0 0 0 5
0 0 0 0 9
4
2
0 0 0 0 1 ‘5’
9 9 9 9 9 ‘9’
(0) 0 0 0 0 1 0
(0) 0 9 9 9 9 0
= 10 номеров UPC-E
0 0 0 0 0
0 0 0 0 9
7
1
0 0 0 1 0 ‘4’
9 9 9 9 9 ‘4’
(0) 0 0 0 3 0 0
(0) 0 9 9 9 0 0
= 100 номеров UPC-E Приложений
0 0 0 0 0
0 0 0 9 9
7
5
0 0 3 0 0 ‘3’
9 9 9 9 9 ‘3’
(0) 0 0 0 0 0 0
(0) 0 9 9 2 9 0
= 1000 номеров UPC-E
0 0 0 0 0
0 0 9 9 9
9
9
0 0 0 1 0 ‘0’
9 9 9 9 9 ‘2’
ТАБЛИЦА 67
Замечания относительно таблицы 67
Компании с префиксами 000000 и от 001000 до 007999 в позициях от N1 до N6 не могут использовать систему UPC-E.
Каждая позиция поля данных должна содержать цифру в пределах интервала [цифра в верхней строке, цифра в нижней строке]. При декодировании алгоритм «развертывания» сокращенной длины до полной определяется цифрой, взятой в кавычки в колонке «Представление в системе UPC-E».
Контрольная цифра вычисляется по алгоритму, приведенному в Приложении 1, примененного к полной длине UCC-12 идентификационного номера. В штриховом коде UPC-E контрольная цифра неявно представлена и вычисляется на основании шести цифр, действительно кодируемых.
ПРИЛОЖЕНИЕ 3. ТАБЛИЦА 1 СТАНДАРТА ISO/IEC 646.
Графический символ
Код представления
Графический символ
Код представления
!
21
M
4D
“
22
N
4E
%
25
O
4F
&
26
P
50
‘
27
Q
51
(
28
R
52
)
29
S
53
2A
T
54
+
2B
U
55
,
2C
V
56
-
2D
W
57
.
2E
X
58
/
2F
Y
59
0
30
Z
5A
1
31
_
5F
2
32
a
61
3
33
b
62
4
34
c
63
5
35
d
64
6
36
e
65
7
37
f
66
8
38
g
67
9
39
h
68
3A
i
69
3B
j
6A
<
3C
k
6B
=
3D
l
6C
3E
m
6D
?
3F
n
6E
A
41
o
6F
B
42
p
70
C
43
q
71
D
44
r
72
E
45
s
73
F
46
t
74
G
47
u
75
H
48
v
76
I
49
w
77
J
4A
x
78
K
4B
y
79
L
4C
z
7A
ТАБЛИЦА 68
ПРИЛОЖЕНИЕ 4. КРАТКИЙ ОБЗОР ИДЕНТИФИКАТОРОВ ПРИМЕНЕНИЯ
Таблица 69 содержит список всех AI, используемых в настоящее время.
Представление формата поля данных выполнено в соответствии со следующими условиями:
а поле данных содержит буквенные символы
n поле данных содержит только цифровые символы
an поле данных содержит буквенно-цифровые символы
а3 поле данных фиксированной длины, содержит 3 буквенных символа
n3 поле данных фиксированной длины, содержит 3 цифровых символа
an3 поле данных фиксированной длины, содержит 3 буквенно-цифровых символа
a…3 поле данных переменной длины, содержит до 3 буквенных символов
n…3 поле данных переменной длины, содержит до 3 цифровых символов
a…3 поле данных переменной длины, содержит до 3 буквенно-цифровых
символов
AI
Полное название
Формат
Краткое название
00
Серийный грузовой контейнерный код
n2+n18
SSCC
01
Идентификационный номер единицы товара
n2+n14
GTIN
02
GTIN торговых единиц, содержащихся в грузе
n2+n14
CONTENT
10
Номер лота (партии, группы, пакета)
n2+an..20
BATCH/LOT
111
Дата выработки (ГГММДД)
n2+n6
PROD DATE
121
Дата платежа
n2+n6
DUE DATE
131
Дата упаковки (ГГММДД)
n2+n6
PACK DATE
151
Минимальный срок годности (ГГММДД)
n2+n6
BEST BEFORE or SELL BY
171
Максимальный срок годности (ГГММДД)
n2+n6
USE BY
or EXPIRY
20
Разновидность продукта
n2+n2
VARIANT
21
Серийный номер
n2+an20
SERIAL
22
Вспомогательные данные специальных фармацевтических продуктов
n2+an..29
QTY/DATE/BATCH
232
Номер лота (переходный)
n3+n..19
BATCH/LOT
240
Дополнительная идентификация продукта, присваиваемая производителем
n3+an 30
ADDITIONAL ID
241
Номер покупателя
n3+an 30
CUST.PART №
250
Дополнительный серийный номер
n3+an 30
SECONDARY SERIAL
30
Переменное количество
n2+n 8
VAR.COUNT
31-363
Торговые и логистические единицы измерения
n4+n6
See next pages**
3373
Килограммы на квадратный метр
n4+n6
KG PER m2
37
Количество торговых единиц в грузе
n2+n 8
COUNT
3903
Сумма, подлежащая к оплате – одна валютная зона
n4+n 15
AMOUNT
3913
Сумма, подлежащая к оплате – с ISO кодом валюты
n4+n3+n 15
AMOUNT
400
Номер заявки покупателя на покупку
n3+an..30
ORDER NUMBER
401
Номер накладной (коносамента)
n3+an..30
CONSIGNMENT
402
Идентификационный номер груза
n3+n17
SHIPMENT №
403
Код маршрута
n3+an..30
ROUTE
410
«Доставить-вручить» EAN/UCC Глобальный адресный номер
n3+n13
SHIP TO LOC
411
«Счет-фактура» EAN/UCC Глобальный адресный номер
n3+n13
BILL TO
412
«Закуплено у» EAN/UCC Глобальный адресный номер
n3+n13
PURCHASE FROM
413
«Груз Для - Поставка Для - Переслать » EAN/UCC Глобальный адресный номер
n3+n13
SHIP FOR LOC
414
Идентификация места размещения, EAN/UCC Глобальный адресный номер
n3+n13
LOC №
415
EAN/UCC Глобальный адресный номер стороны, выставившей счет
n3+n13
PAY TO
420
«Доставить-вручить» Почтовый код в пределах одной страны
n3+an..20
SHIP TO POST
421
Доставить-вручить» Почтовый код с 3-хзначным кодом страны по ISO
n3+n3+an 9
SHIP TO POST
422
Страна происхождения торговой единицы
n3+n3
ORIGIN
8001
Рулонные товары – Толщина, длина, диаметр, направление обмотки, сращивание
n4+n14
DIMENSIONS
8002
Электронный серийный идентификационный номер для мобильного телефона
n4+an..20
CMT №
8003
Глобальный номер оборотной тары
n4++n14+an..16
GRAI
8004
Глобальный номер индивидуального имущества
n4+an..30
GIAI
8005
Цена единицы измерения товара
n4+n6
PRICE PER UNIT
8006
Идентификация компонент торговой единицы
n4++n14+n2+n2
GCTIN
8007
Международный номер банковского счета
n4+an..30
IBAN
8018
Глобальный номер для услуг
n4+n18
GSRN
8020
Ссылочный номер платежного требования
n4+an..25
REF №
8100
Расширенный код купона – NSC + код предложения
n4+n1+n5
-
8101
Расширенный код купона – NSC + код предложения + конец кода предложения
n4+n1+n5+n4
-
8102
Расширенный код купона – NSC
n4+n1+n1
-
90
Информация по согласованию между торговыми партнерами (включая FACT Dls)
n2+an..30
INTERNAL
91-99
Внутренняя информация компании
n2+an..30
INTERNAL
Торговые метрические единицы измерения
AI
Полное наименование
Данные формат n6
Единица измерения
Наименование данных
310(n)
Чистый вес
Килограммы
NET WEIGHT (kg)
311(n)
Длина (первое измерение), торговля
Метры
LENGTH (m)
312(n)
Ширина, диаметр (второе измерение), торговля
Метры
WIDTH (m)
313(n)
Глубина, толщина, высота (3-е измерение), торговля
Метры
HEIGHT (m)
314(n)
Площадь, торговля
Квадратные Метры
AREA (m2)
315(n)
Чистый объем, торговля
Литры
NET VOLUME (I)
316 (n)
Чистый объем, торговля
Куб. метры
NET VOLUME (m3)
Не метрические единицы измерения
AI
Полное наименование
Данные формат n6
Единица измерения
Наименование данных
320(n)
Чистый вес
Фунты
NET WEIGHT (ib)
321(n)
Длина (первое измерение), торговля
Дюймы
LENGTH (i)
322(n)
Длина (первое измерение), торговля
Футы
LENGTH (f)
323(n)
Длина (первое измерение), торговля
Ярды
LENGTH (y)
324(n)
Ширина, диаметр (второе измерение), торговля
Дюймы
WIDTH (i)
325(n)
Ширина, диаметр (второе измерение),торговля
Футы
WIDTH (f)
326 (n)
Ширина, диаметр (второе измерение), торговля
Ярды
WIDTH (y)
327(n)
Глубина, толщина, высота (3-е измерение), торговля
Дюймы
HEIGHT (i)
328(n)
Глубина, толщина, высота (3-е измерение), торговля
Футы
HEIGHT (f)
329(n)
Глубина, толщина, высота (3-е измерение), торговля
Ярды
HEIGHT (y)
350(n)
Площадь, торговля
Кв. дюймы
AREA (i2)
351(n)
Площадь, торговля
Кв. футы
AREA (f2)
352(n)
Площадь, торговля
Кв. ярды
AREA (y2)
356 (n)
Чистый вес
Тройские унции
NET WEIGHT (t)
357(n)
Чистый вес
Унции
NET VOLUME (oz)
360(n)
Чистый объем
Кварты
NET VOLUME (ib)
361(n)
Чистый объем
Галлоны (США)
NET VOLUME (g)
364(n)
Чистый объем
Куб. дюймы
NET VOLUME (i3)
365(n)
Чистый объем
Куб. футы
NET VOLUME (f3)
366(n)
Чистый объем
Куб. ярды
NET VOLUME (y3)
AI
Полное наименование
Данные формат n6
Единица измерения
Наименование данных
330(n)
Брутто вес
Килограммы
GROSS WEIGHT (kg)
331(n)
Длина (первое измерение), логистическое
Метры
LENGTH (m), log
332(n)
Ширина, диаметр (второе измерение), логистическое
Метры
WIDTH (m), log
333(n)
Глубина, толщина, высота (3-е измерение), логистическое
Метры
HEIGHT (m), log
334(n)
Площадь, логистическое
Кв. метры
AREA (m2), log
335(n)
Брутто объем
Литры
VOLUME (l), log
336 (n)
Брутто объем
Куб. метры
VOLUME (m3), log
AI
Полное наименование
Данные формат n6
Единица измерения
Наименование данных
340(n)
Брутто вес
Фунты
GROSS WEIGHT (lb)
341(n)
Длина (первое измерение), логистическое
Дюймы
LENGTH (i), log
342(n)
Длина (первое измерение) логистическое
Футы
LENGTH (f), log
343(n)
Длина (первое измерение) логистическое
Ярды
LENGTH (y), log
344(n)
Ширина, диаметр (второе измерение) логистическое
Дюймы
WIDTH (i), log
345(n)
Ширина, диаметр (второе измерение) логистическое
Футы
WIDTH (f), log
346 (n)
Ширина, диаметр (второе измерение) логистическое
Ярды
WIDTH (y), log
347(n)
Глубина, толщина, высота (3-е измерение) логистическое
Дюймы
HEIGHT (i), log
348(n)
Глубина, толщина, высота (3-е измерение) логистическое
Футы
HEIGHT (f), log
349(n)
Глубина, толщина, высота (3-е измерение) логистическое
Ярды
HEIGHT (y), log
353(n)
Площадь логистическое
Кв. дюймы
AREA (i2), log
354(n)
Площадь логистическое
Кв. дюймы
AREA (f2), log
355(n)
Площадь логистическое
Кв. футы
AREA (y2), log
362(n)
Брутто объем
Кварты
VOLUME (q), log
363(n)
Брутто объем
Галлоны (США)
VOLUME (g), log
367(n)
Брутто объем
Куб. дюймы
VOLUME (i3), log
368(n)
Брутто объем
Куб. футы
VOLUME (f3), log
369(n)
Брутто объем
Куб. ярды
VOLUME (y3), log
ПРИЛОЖЕНИЕ 5. ОПРЕДЕЛЕНИЕ ВЕКА В ДАТАХ.
Элементами строк, содержащих даты, являются:
Дата производства (AI 11)
Предельный срок платежа (AI 12)
Дата упаковки (AI 13)
Минимальный срок годности (AI 15)
Максимальный срок годности (AI 17)
Дата и время производства (AI 8008)
Право пользователя – определять, какие типы данных использовать в своей практике. Выбор типов данных, несомненно, зависит от вида товаров, к которым они применяются.
Поскольку поле «год» содержит две позиции, то век определяется по следующему алгоритму:
ТАБЛИЦА
Замечание: Элемент строки может определять даты в диапазоне – 49 в прошлом и 50 лет в будущем.
ПРИЛОЖЕНИЕ 6. ОБЪЕДИНЕНИЕ ЭЛЕМЕНТОВ СТРОК В ПРАВИЛЬНОЕ СООБЩЕНИЕ.
Автоматическое считывание данных заменяет ручной ввод визуальной информации. Внедрение этого процесса требует, чтобы сообщения для автоматического считывания предоставляли всю необходимую для транзакций информацию без вмешательства человека. EAN/UCC система данных может использоваться: для записи данных в компьютерные файлы, для сортировки товаров на конвейерных линиях, для проверки комплектации груза, для учета поступления и выбытия запасов на складах и т.д.
Элементы строк могут применяться непосредственно на физических товарах или печататься в каталогах или документах. Типы сканирующего оборудования и транзакции в целом определяют состав и объем необходимой информации для решения конкретной задачи бизнеса. Поскольку вся информация, считываемая автоматически, используется в программах электронной обработки данных, строгое определение обрабатываемой информации абсолютно необходимо.
Для правильной обработки сканируемой информации программы конкретных задач бизнеса могут потребовать объединения элементов строк, представляющих некоторую комбинацию идентификаторов. EAN/UCC система позволяет пользователям выбирать необходимый уровень полноты данных через использование адекватных элементов строк.
Логическая структура этого стандарта позволяет пользователю оперировать данными, определенных на двух уровнях. На первом уровне определение данных выполняется в соответствии с системными правилами, требующими выполнения главного условия системы – не вмешательство человека в процесс обработки данных. На втором уровне определение данных выполняется в соответствии с требованиями программы, решающей конкретную задачу.
Следующие ниже две таблицы описывают правила первого (системного) уровня, т.е. соответствие данных логике системы. Первая таблица определяет несовместные пары элементов строк, которые не должны появляться на одной и той же физической единице. Вторая таблица определяет обязательные элементы строк, которые должны присутствовать на физической единице, если на ней присутствует другой элемент. Все другие комбинации возможны на первом уровне, хотя могут быть лишены всякого смысла на втором уровне.
ОСНОВНЫЕ СОГЛАШЕНИЯ
Те элементы строк, которые требуют специального программного обеспечения и(или) специального оборудования для сканирования, не подпадают под эти правила. Такими элементами являются элементы строк с EAN/UCC префиксами от 0001 до 0007, 02, 04, 05, от 20 до 29, 980, 99; EAN/UCC - 8 префиксы 0 и 2; дополнительные коды EAN-2 и EAN-5; и идентификаторы применения от 8100 до 8102.
Дублированные элементы строк, нанесенные на одну и ту же физическую единицу, должны иметь одинаковое значение.
В таблицах используется термин GTIN – глобальный идентификационный номер товара. Этот номер может быть представлен в виде штрихового кода в системе EAN/UPC или в виде штрихового кода в системе ITF-14 или в системе EAN/UCC-128, используя идентификаторы применения 01 или 8006.
ТАБЛИЦА 1
Пары элементов строк
Пояснение
AI
Обозначение
AI
Обозначение
GTIN
Идентификация торговой единицы
GTIN
Идентификация торговой единицы
Дублирует GTIN с различными величинами
GTIN
Идентификация торговой единицы
02
Идентификация содержания груза
AI 02 не может использоваться для идентфикации единиц содержащихся в торговой единице
10
Пакет/Номер лота
23n
Номер лота (транзитное использование)
Дублирует номера лота с различными величинами
22
Вспомогательные данные фармацевтических продуктов
30
Счет
Дублирует счета с различными величинами
22
“
10
Пакет/Номер лота
Дублирует номеров лота с различными величинами
22
“
17
Максимальный срок годности
Дублирует окончательную дату с различными величинами
22
“
21
Серийный номер
Дублирует серийные номера с различными величинами
22
“
23n
Номер лота (транзитное использование)
Дублирует номера лота с различными величинами
420
Почтовый код получателя в пределах одной страны
421
Почтовый код получателя с кодом страны по ISO
Только один «Доставить…» почтовый код может быть приложен к торговой единице
390n
Сумма, подлежащая к оплате – одна валютная зона
391n
Сумма, подлежащая к оплате – с ISO кодом валюты
Только один элемент строки «Сумма подлежащая к оплате» может быть приложен к платежному требованию
8006
Идентификационный компонент
GTIN
Идентификация торговой единицы
Другие GTIN не могут быть использованы с AI 8006. Торговая единица, идентифицированная GTIN-ом содержащимся в AI 8006.
ТАБЛИЦА 2.
Элемент строки
AI Обозначение
Обязательно должен присутствовать элемент строки
Пояснение
GTIN с N1 = 9
Идентификатор переменного веса торговой единицы
30, 3nnn1
или 3nnn2
или 8001
Обязательно присутствие с информацией о переменном весе.
02
Идентификация содержания единицы груза
00
Обязательно присутствие с SSCC
02
Идентификация содержания единицы груза
37
Обязательно счет содержащихся торговых единиц
10
Пакет/Номер лота
GTIN
или 02
Обязательное соединение с GTIN ил с идентификатором содержания логистической единицы
11,13, 15,17
Даты
GTIN
или 02
Обязательное соединение с GTIN ил с идентификатором содержания логистической единицы
12
Дата платежа
8020
и 415
Обязательно соединение с ссылочным номером платежного поручения и EAN/UCC GLN в инвойсной части
20
Разновидность продукта
GTIN
или 02
Обязательное соединение с GTIN или с идентификатором содержания логистической единицы
21
Серийный номер
GTIN
Обязательное соединение с GTIN единственной торговой единицы (серийный номер не может применяться для группы торговых единиц)
22
Вспомогательные данные фармацевтической промышленности
GTIN
Обязательно соединение с GTIN
23т
Номер лота
GTIN
или 02
Обязательное соединение с GTIN или с идентификатором содержания логистической единицы
240
Дополнительная идентификация продукта
GTIN
или 02
Обязательное соединение с GTIN или с идентификатором содержания логистической единицы
241
Номер покупателя
GTIN
или 02
Обязательное соединение с GTIN или с идентификатором содержания логистической единицы
250
Дополнительный серийный номер
GTIN
Обязательное соединение с GTIN (вторичный серийный номер не может применяться для группы торговых единиц)
250
Дополнительный серийный номер
21
Обязательное соединение с серийным номером
30
Переменное количество
GTIN
или 02
Обязательно соединение с GTIN переменного размера (т.е. идентификационный номер EAN/UCC-14 начинается с 9) или идентификация содержимого груза переменного размера.
3nnn1
Торговые величины, которые не могут быть суммированы
GTIN
Обязательно соединение с GTIN переменного размера (т.е. идентификационный номер EAN/UCC-14 начинается с 9)
3nnn2
Торговые величины, которые могут быть суммированы
GTIN
или 02
Обязательно соединение с GTIN переменного размера (т.е. идентификационный номер EAN/UCC-14 начинается с 9) или идентификация содержимого груза переменного размера.
3nnn3
Логистические величины
00 или
GTIN
Обязательно соединение с SSCC или GTIN переменного размера (т.е. идентификационный номер EAN/UCC-14 начинается с 9).
337n
Килограмм на квадратный метр
GTIN
Обязательно соединение с GTIN
37
Количество единиц в грузе
02
Обязательно соединение с идентификаторм содержимого логистической единицы
390n
Сумма, подлежащая к оплате – одна валютная зона
8020 и
415
Обязательно соединение с ссылочным номером платежного поручения и EAN/UCC GLN в инвойсной части
391n
Сумма, подлежащая к оплате – с ISO кодом валюты
8020 и
415
Обязательно соединение с ссылочным номером платежного поручения и EAN/UCC GLN в инвойсной части
403
Код маршрута
00
Обязательно соединение с SSCC
415
EAN/UCC Глобальный адресный номер стороны, выставившей счет
8020
Обязательно соединение с ссылочным номером платежного поручения
422
Страна происхождения
GTIN
Обязательно соединение с GTIN
8001
Рулонные товары
GTIN
Обязательно соединение с GTIN переменного размера (т.е. идентификационный номер EAN/UCC-14 начинается с 9)
8005
Цена единицы измерения товара
GTIN или 02
также с N1=9
Обязательно соединение с GTIN переменного размера или идентификаторм содержимого логистической единицы
8007
Международный номер банковского счета
8020 и
415
Обязательно соединение с ссылочным номером платежного поручения и EAN/UCC GLN в инвойсной части
8020
Ссылочный номер платежного требования
415
Обязательно соединение с EAN/UCC GLN в инвойсной части
1 AI 3nnn где первые три цифры 312, 313, 324, 325, 326, 327, 328 и 329.
2 AI 3nnn где первые три цифры 310, 311, 314, 315, 316, 320, 321, 322, 323, 350, 351, 352,.356,357, 360, 361, 364, 365 и 366
3 AI 3nnn где первые три цифры 330, 331, 332, 333, 334, 320, 335, 336, 330, 341, 342, 343,.344,345, 346, 347, 348, 349 , 353, 355, 362, 363, 367, 368 и 369
Настраивается под конкретный сервер CWMS3000. Пример сценария:
del /Q "D:\backup\dump\*"
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=%
set NLS_LANG=.CL8MSWIN1251
exp.EXE USERID=system/<пароль>@<строка соединен> LOG=D:\backup\dump\%_my_datetime%_mi.log FILE=D:\backup\dump\%_my_datetime%_mi.dmp owner=<login> consistent=y
copy "D:\backup\rar\*" "\\192.168.60.13\backup\Oracle_ed"
и второй пример:
@echo off
for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do set dt=%%i%%j%%k%%l
for /f "Tokens=1" %%i in ('time /t') do set tm=%%i
set tm=%tm%
set dtt=%dt%%tm-st.dmp%
set tape_label="%computername%-%dtt%"
set set_label="%computername% export %dtt%"
set NLS_LANG=.CL8MSWIN1251
exp.EXE USERID=system/<пароль>@<строка соединения> LOG=f:\IDE_BACKUP\BOX\%dtt%.log FILE=f:\IDE_BACKUP\BOX\%dtt%.dmp owner=<строка соединения> consistent=y
Необходимо задать строку соединения, нужные директории.
Внимание
При импорте БД необходимо настроить системные задачи БД. Это выполняется нашими специалистами.
Новые рекомендации к "Экспорт", "Импорт"
Cоздать объект-директорию, с которым нам предстоит работать:
CREATE OR REPLACE DIRECTORY <объект>AS '/u01/app/oracle/oradata/';
GRANT READ, WRITE ON DIRECTORY <объект> TO <логин>;
Дополнительная информация
В отличии от утилит exp и imp, все файлы Data Pump: и ".dmp", и ".log", - создаются на Oracle-сервере, а не на клиентском компьютере.
Все действия Data Pump выполняются множественными задачами (jobs) (server processes not DBMS_JOB jobs). Эти задачи управляются главным управляюшим процессом, который использует расширенную очередь (Advanced Queuing). Во время выполнения, создаётся и используется главным управляющим процессом таблица очереди, которая называется по имени задания. Таблица удаляется после успешного выполнения задания Data Pump. Задание и очередь могут быть названы на Ваше усмотрение с использованием параметра "JOB_NAME". Остановка клиентского процесса не останавливает связанное с ним Data Pump задание. Передача клиенту комбинации клавиш "Ctrl+C" во время выполнения задания остановит вывод на стандартное устройство вывода и переведёт в командную строку. Ввод "status" в этой командной строке позволить проследить за состоянием текущего задания:
Export> status
Worker 1 Status:
State: EXECUTING
Object Schema: SYSMAN
Object Name: MGMT_CONTAINER_CRED_ARRAY
Object Type: DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
Completed Objects: 261
Total Objects: 261
Job: SYS_EXPORT_FULL_01
Operation: EXPORT
Mode: FULL
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 1
Job Error Count: 0
Dump File: D:TEMPDB10G.DMP
bytes written: 4,096
Worker 1 Status:
State: EXECUTING
Object Schema: SYSMAN
Object Name: MGMT_CONTAINER_CRED_ARRAY
Object Type: DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
Completed Objects: 261
Total Objects: 261
Производительность Data Pump может быть улучшена использованием параметра "PARALLEL". Этот параметр следует использовать совместно с шаблоном "%U" в параметре "DUMPFILE" для разрешения создания или чтения множественных dump-файлов:
expdp <user>/<пароль>@<схема> schemas=<имя схемы> directory=<имя директории> parallel=4 dumpfile=<имя дампа>.dmp logfile=<имя лога>.log
Вьюшка (view) "DBA_DATAPUMP_JOBS" может быть использована для контроля состояния задания:
<user>@<схема>> select * from dba_datapump_jobs;
OWNER_NAME JOB_NAME OPERATION
------------------------------ ------------------------------ ------------------------------
JOB_MODE STATE DEGREE ATTACHED_SESSIONS
------------------------------ ------------------------------ ---------- -----------------
<user> SYS_EXPORT_FULL_01 EXPORT
FULL EXECUTING 1 1
Параметры "INCLUDE" и "EXCLUDE" могут быть использованы для ограничения импорта/экспорта указанных объектов. Когда используется параметр "INCLUDE", в экспорт будут включены только указанные объекты:
expdp <user>/<пароль>@<схема> schemas=<имя схемы> include=TABLE:"IN ('EMP', 'DEPT')" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log
При использовании параметра "EXCLUDE", все объекты, кроме указанных в параметре, будут включены в экспорт:
expdp <user>/<пароль>@<схема> schemas=<имя схемы> exclude=TABLE:"= 'BONUS'" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log
Кроме всего прочего, нужно учитывать особенности реализации среды. Например, в bash строка может выглядеть так:
expdp <user>/<пароль>@<схема> schemas=<имя схемы> exclude=TABLE:\"like \'USER%\'\" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log
Data Pump API
Вместе с утилитами Data Pump, Oracle предоставляет PL/SQL API. Следующий пример показывает, как API может быть использован для выполнения экспорта:
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
l_dp_handle NUMBER;
l_last_job_state VARCHAR2(30) := 'UNDEFINED';
l_job_state VARCHAR2(30) := 'UNDEFINED';
l_sts KU$_STATUS;
BEGIN
l_dp_handle := DBMS_DATAPUMP.open(
operation => 'EXPORT',
job_mode => 'SCHEMA',
remote_link => NULL,
job_name => 'EMP_EXPORT',
version => 'LATEST');
DBMS_DATAPUMP.add_file(
handle => l_dp_handle,
filename => 'SCOTT.dmp',
directory => 'TEST_DIR');
DBMS_DATAPUMP.add_file(
handle => l_dp_handle,
filename => 'SCOTT.log',
directory => 'TEST_DIR',
filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
DBMS_DATAPUMP.metadata_filter(
handle => l_dp_handle,
name => 'SCHEMA_EXPR',
value => '= SCOTT');
DBMS_DATAPUMP.start_job(l_dp_handle);
DBMS_DATAPUMP.detach(l_dp_handle);
END;
/
Как только задание запущено, его статус можно проверить используя следующий запрос:
system@db10g> select * from dba_datapump_jobs;
Внешние таблицы
У Oracle появилась поддержка технологий Data Pump, с помощью которых можно преносить данные во внешние таблицы. Драйвер доступа ORACLE_DATAPUMP может быть использован для выгрузки данных в экспорт-файл и последующей перезагрузке их. Выгрузка данных происходит, когда внешняя таблица создана с использованием кляузы "AS":
CREATE TABLE emp_xt
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY test_dir
LOCATION ('emp_xt.dmp')
)
AS SELECT * FROM emp;
Затем данные могут быть запрошены так:
SELECT * FROM emp_xt;
Синтаксис создания указателя на внешнюю таблицу в существующем файле аналогичен, но без кляузы "AS":
DROP TABLE emp_xt;
CREATE TABLE emp_xt (
EMPNO NUMBER(4),
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2))
ORGANIZATION EXTERNAL (
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY test_dir
LOCATION ('emp_xt.dmp')
);
SELECT * FROM emp_xt;
HELP
Опция "HELP=Y" заставит отобразить описание всех доступных параметров:
expdp help=y
Export: Release 10.2.0.3.0 - 64bit Production on Среда, 20 Февраль, 2008 13:57:18
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Утилита экспорта насоса данных предоставляет механизм для передачи объектов данных
между базами данных Oracle. Эта утилита вызывается следующей командой:
Пример: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
Управление выполнением экспорта может осуществляться вводом команды 'expdp' с заданием после нее
различных параметров. Для задания параметров служат ключевые слова:
Формат: expdp КЛЮЧЕВОЕ СЛОВО=значение или КЛЮЧЕВОЕ СЛОВО=(значение1,значение2,...,значениеN)
Пример: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
или TABLES=(T1:P1,T1:P2), если T1 является секционированной таблицей
USERID должно быть первым параметром в командной строке.
Ключевое слово Описание (Знач. по умолчанию)
------------------------------------------------------------------------------
ATTACH Служит для присоединения к существующему заданию, например, ATTACH [=имя задания].
COMPRESSION Уменьшение размера содержимого файла дампа, если допустимо
значения ключевого слова: (METADATA_ONLY) и NONE.
CONTENT Служит для задания данных для выгрузки. Разрешаются ключевые слова:
(ALL), DATA_ONLY и METADATA_ONLY.
DIRECTORY Объект 'каталог' для файлов дампов и файлов журналов.
DUMPFILE Список результирующих файлов дампов (expdat.dmp),
например, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
ENCRYPTION_PASSWORD Ключ пароля для создания столбца зашифрованных данных.
ESTIMATE Служит для вычисления оценочных данных заданий. Допускаются следующие ключевые слова:
(BLOCKS) и STATISTICS.
ESTIMATE_ONLY Служит для вычисления оценочных данных заданий без выполнения экспорта.
EXCLUDE Служит для исключения определенных типов объектов, например, EXCLUDE=TABLE:EMP.
FILESIZE Служит для задания размера каждого файла дампа в байтах.
FLASHBACK_SCN SCN, используемый для установки мгновенного снимка сеанса назад.
FLASHBACK_TIME Время, используемое на получение SCN, ближайшее к заданному времени.
FULL Служит для экспорта всей базы данных (N).
HELP Служит для отображения сообщений Справки (N).
INCLUDE Служит для включения определенных типов объектов, например, INCLUDE=TABLE_DATA.
JOB_NAME Имя создаваемого задания экспорта.
LOGFILE Имя файла журнала (export.log).
NETWORK_LINK Имя канала связи удаленной базы данных с исходной системой.
NOLOGFILE Не записывать файл журнала (N).
PARALLEL Служит для изменения числа активных рабочих процессов для текущего задания.
PARFILE Служит для задания файла параметров.
QUERY Фраза предиката, используемая для экспорта подмножества таблицы.
SAMPLE Процент данных для экспорта;
SCHEMAS Служит для перечисления схем экспорта (схема при регистрации).
STATUS Частота (сек) с которой должно отслеживаться состояние задания, где
значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
TABLES Служит для указания списка таблиц для экспорта - только для одной схемы.
TABLESPACES Служит для указания списка табличных пространств для экспорта.
TRANSPORT_FULL_CHECK Служит для проверки сегментов хранения для всех таблиц (N).
TRANSPORT_TABLESPACES Список табличных пространств, из которых будут выгружены метаданные.
VERSION Версия объектов для экспорта. Могут использоваться следующие ключевые слова:
(COMPATIBLE), LATEST или любой действительный номер версии базы данных.
Следующие команды могут использоваться в интерактивном режиме.
Примечание. Допускается использование сокращений
Команда Описание
------------------------------------------------------------------------------
ADD_FILE Служит для добавления файла дампа в набор файлов дампов.
CONTINUE_CLIENT Служит для возврата в режим протоколирования. В случае простоя задание будет запущено заново.
EXIT_CLIENT Служит для выхода из сеанса клиента без прекращения выполнения задания.
FILESIZE Размер файла по умолчанию (байт) для последующих команд ADD_FILE.
HELP Отображает сводку по интерактивным командам.
KILL_JOB Служит для отсоединения и удаления задания.
PARALLEL Служит для изменения числа активных рабочих процессов для текущего задания.
PARALLEL=<число рабочих процессов>.
START_JOB Служит для запуска/возобновления текущего задания.
STATUS Частота (сек) с которой должно отслеживаться состояние задания, где
значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
STATUS[=interval]
STOP_JOB Служит для нормального завершения выполнения задания и выхода из клиента.
STOP_JOB=IMMEDIATE выполняет немедленное завершение
задания насоса данных.
impdp help=y
Import: Release 10.2.0.3.0 - 64bit Production on Среда, 20 Февраль, 2008 13:57:18
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Утилита импорта насоса данных предоставляет механизм для передачи объектов данных
между базами данных Oracle. Эта утилита вызывается следующей командой:
Пример: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
Управление выполнением импорта может осуществляться вводом команды 'impdp' с заданием после нее
различных параметров. Для задания параметров служат ключевые слова:
Формат: impdp КЛЮЧЕВОЕ СЛОВО=значение или КЛЮЧЕВОЕ СЛОВО=(значение1,значение2,...,значениеN)
Пример: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
USERID должно быть первым параметром в командной строке.
Ключевое слово Описание (Знач. по умолчанию)
------------------------------------------------------------------------------
ATTACH Служит для присоединения к существующему заданию, например, ATTACH [=имя задания].
CONTENT Служит для задания данных для загрузки. Разрешаются ключевые слова:
(ALL), DATA_ONLY и METADATA_ONLY.
DIRECTORY Объект 'каталог', который должен использоваться для файлов дампов, журналов и sql.
DUMPFILE Список файлов дампов для выполнения импорта из них (expdat.dmp),
например, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
ENCRYPTION_PASSWORD Ключ пароля для доступа к столбцу зашифрованных данных.
Этот параметр недействителен для заданий импорта по сети.
ESTIMATE Служит для вычисления оценочных данных заданий. Допускаются следующие ключевые слова:
(BLOCKS) и STATISTICS.
EXCLUDE Служит для исключения определенных типов объектов, например, EXCLUDE=TABLE:EMP.
FLASHBACK_SCN SCN, используемый для установки мгновенного снимка сеанса назад.
FLASHBACK_TIME Время, используемое на получение SCN, ближайшее к заданному времени.
FULL Служит для выполнения импорта всех данных из источника (Y).
HELP Служит для отображения сообщения Справки (N).
INCLUDE Служит для включения определенных типов объектов, например, INCLUDE=TABLE_DATA.
JOB_NAME Имя создаваемого задания импорта.
LOGFILE Имя файла журнала (import.log).
NETWORK_LINK Имя канала связи удаленной базы данных с исходной системой.
NOLOGFILE Не записывать файл журнала.
PARALLEL Служит для изменения числа активных рабочих процессов для текущего задания.
PARFILE Служит для задания файла параметров.
QUERY фраза предиката, используемая для импорта подмножества таблицы.
REMAP_DATAFILE Служит для переопределения ссылок на файлы данных во всех операторах DDL.
REMAP_SCHEMA Объекты из одной схемы загружаются в другую схему.
REMAP_TABLESPACE Объект табличного пространства повторно отображается в другое табличное пространство.
REUSE_DATAFILES Табличное пространство будет инициализировано, если оно уже существует (N).
SCHEMAS Список схем для импорта.
SKIP_UNUSABLE_INDEXES Служит для пропуска индексов, для которых было установлено состояние 'Индекс не применим'.
SQLFILE Служит для записи всех DDL SQL в указанный файл.
STATUS Частота (сек) с которой должно отслеживаться состояние задания, где
значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
STREAMS_CONFIGURATION включает загрузку метаданных потоков
TABLE_EXISTS_ACTION Действие, которое выполняется, если импортируемый объект уже существует.
Допустимые ключевые слова: (SKIP), APPEND, REPLACE и TRUNCATE.
TABLES Служит для задания списка таблиц для импорта.
TABLESPACES Служит для задания списка табличных пространств для импорта.
TRANSFORM Преобразование метаданных, которое должно применяться к соответствующим объектам.
Допустимые ключевые слова для преобразований: SEGMENT_ATTRIBUTES, STORAGE
OID и PCTSPACE.
TRANSPORT_DATAFILES Список файлов данных для импорта в режиме, допускающем транспортировку.
TRANSPORT_FULL_CHECK Служит для проверки сегментов хранения для всех таблиц (N).
TRANSPORT_TABLESPACES Список табличных пространств, из которых будут загружаться метаданные.
Действительно только для операций в режиме импорта NETWORK_LINK.
VERSION Версия объектов для экспорта. Могут использоваться следующие ключевые слова:
(COMPATIBLE), LATEST или любой действительный номер версии базы данных.
Действительно только для NETWORK_LINK и SQLFILE.
Следующие команды могут использоваться в интерактивном режиме.
Примечание. Допускается использование сокращений
Команда Описание (Значение по умолчанию)
------------------------------------------------------------------------------
CONTINUE_CLIENT Служит для возврата в режим протоколирования. В случае простоя задание будет запущено заново.
EXIT_CLIENT Служит для выхода из сеанса клиента без прекращения выполнения задания.
HELP Отображает сводку по интерактивным командам.
KILL_JOB Служит для отсоединения и удаления задания.
PARALLEL Служит для изменения числа активных рабочих процессов для текущего задания.
PARALLEL=<число рабочих процессов>.
START_JOB Служит для запуска/возобновления текущего задания.
START_JOB=SKIP_CURRENT служит для запуска задания после пропуска
всех действий, которые выполнялись, когда задание было остановлено.
STATUS Частота (сек) с которой должно отслеживаться состояние задания, где
значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
STATUS[=interval]
STOP_JOB Служит для нормального завершения выполнения задания и выхода из клиента.
STOP_JOB=IMMEDIATE выполняет немедленное завершение
задания насоса данных.
Решение
1) Шрифты, используемые для ШК, можно получить в Утилитах -> Библиотеках.
2) Фильтруем записи с расширением .ttf
3) Выгружаем нажатием на «…» , далее «Выгрузить из БД»
4) Далее открываем локальную папку, из которой производится запуск ВМС,
по умолчанию в папке xlt\ будет выгружен шрифт.
Например: C:\CWMS3000\xlt\
5) Открываем нужный шрифт и устанавливаем
(select to_char (bar_code) from nom_barcode where nomenklatura_n = d.nomenklatura_n and td = kk_common.gettd and unit_typ = 1)
В приведенном примере выводится шк номенклатуры
Сервер БД
Oracle Database 10G
Дамп базы (схема BOX в случае нового клиента и схема клиента в случае тестового сервера)
Сервер приложений
Oracle Client (10)
SQL Navigator 5.4 (5.5)*
MS Office Excel 2003*
Free PDF (http://freepdf-xp.en.softonic.com/)
Foxit Reader (http://www.foxitsoftware.com/Secure_PDF_Reader/)
Дистрибутив CWMS3000
*отмеченные программные продукты не входят в комплект поставки, но желательны для правильной работы системы.
Checking operating system version: must be 5.0, 5.1, 5.2 or 6.0. Actual 6.1 Failed <<<<
открыть oraparam.ini и добавить нужную версию в разделе [Certified Versions] через запятую Windows=5.0,5.1,5.2,6.0,6.1 :
В визарде при появлении ошибки поставить галочку "User Verified"
Создание базы данных
Настройка Oracle Listener
Создание табличных пространств и пользователя
select name from v$datafile where rownum<2;
Далее:
create tablespace ACTIONS_01 logging datafile '<путь к файлу>/ACTIONS_01.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ACTIONS_02 logging datafile '<путь к файлу>/ACTIONS_02.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ACTIONS_03 logging datafile '<путь к файлу>/ACTIONS_03.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ACTIONS_04 logging datafile '<путь к файлу>/ACTIONS_04.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace BLOB_STORAGE logging datafile '<путь к файлу>/BLOB_STORAGE.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace INDX logging datafile '<путь к файлу>/INDX.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_INDX logging datafile '<путь к файлу>/ST_BAR_JOBS_INDX.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_01 logging datafile '<путь к файлу>/ST_BAR_JOBS_01.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_02 logging datafile '<путь к файлу>/ST_BAR_JOBS_02.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_03 logging datafile '<путь к файлу>/ST_BAR_JOBS_03.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_04 logging datafile '<путь к файлу>/ST_BAR_JOBS_04.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_05 logging datafile '<путь к файлу>/ST_BAR_JOBS_05.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_06 logging datafile '<путь к файлу>/ST_BAR_JOBS_06.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_07 logging datafile '<путь к файлу>/ST_BAR_JOBS_07.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_08 logging datafile '<путь к файлу>/ST_BAR_JOBS_08.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_09 logging datafile '<путь к файлу>/ST_BAR_JOBS_09.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_10 logging datafile '<путь к файлу>/ST_BAR_JOBS_10.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_11 logging datafile '<путь к файлу>/ST_BAR_JOBS_11.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_12 logging datafile '<путь к файлу>/ST_BAR_JOBS_12.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_13 logging datafile '<путь к файлу>/ST_BAR_JOBS_13.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_14 logging datafile '<путь к файлу>/ST_BAR_JOBS_14.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_15 logging datafile '<путь к файлу>/ST_BAR_JOBS_15.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_17 logging datafile '<путь к файлу>/ST_BAR_JOBS_17.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_22 logging datafile '<путь к файлу>/ST_BAR_JOBS_22.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_32 logging datafile '<путь к файлу>/ST_BAR_JOBS_32.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_33 logging datafile '<путь к файлу>/ST_BAR_JOBS_33.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_20 logging datafile '<путь к файлу>/ST_BAR_JOBS_20.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace STOCK logging datafile '<путь к файлу>/STOCK.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace STOCKINDX logging datafile '<путь к файлу>/STOCKINDX.DBF ' size 250M autoextend on next 100M maxsize 16984M;
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED;
CREATE USER *USERNAME*
IDENTIFIED BY *USERPASSWORD*
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
/
GRANT ALTER SESSION TO *USERNAME*
/
GRANT ALTER SYSTEM TO *USERNAME*
/
GRANT CREATE ANY TRIGGER TO *USERNAME*
/
GRANT CREATE LIBRARY TO *USERNAME*
/
GRANT CREATE PROCEDURE TO *USERNAME*
/
GRANT CREATE SEQUENCE TO *USERNAME*
/
GRANT CREATE SESSION TO *USERNAME*
/
GRANT CREATE SYNONYM TO *USERNAME*
/
GRANT CREATE TABLE TO *USERNAME*
/
GRANT CREATE TRIGGER TO *USERNAME*
/
GRANT CREATE TYPE TO *USERNAME*
/
GRANT CREATE VIEW TO *USERNAME*
/
GRANT CREATE ANY CONTEXT TO *USERNAME*
/
GRANT SELECT ON sys.dba_lock TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_alert TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_job TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_lock TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_pipe TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_session TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_sql TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_system TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_crypto TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_obfuscation_toolkit TO *USERNAME*
/
GRANT SELECT ON sys.v_$lock TO *USERNAME*
/
GRANT SELECT ON sys.v_$process TO *USERNAME*
/
GRANT SELECT ON sys.v_$session TO *USERNAME*
/
GRANT SELECT ON sys.v_$sql TO *USERNAME*
/
GRANT SELECT ON sys.v_$sqltext TO *USERNAME*
/
GRANT SELECT ON sys.v_$parameter TO *USERNAME*
/
CREATE VIEW x$_kglpn AS SELECT * FROM x$kglpn
/
GRANT SELECT ON x$_kglpn TO *USERNAME*
/
CREATE SYNONYM *USERNAME*.x$kglpn FOR SYS.x$_kglpn
/
CREATE VIEW x$_kglob AS SELECT * FROM x$kglob
/
GRANT SELECT ON x$_kglob TO *USERNAME*
/
CREATE SYNONYM *USERNAME*.x$kglob FOR SYS.x$_kglob
/
CREATE VIEW x$_ksuse AS SELECT * FROM x$ksuse
/
GRANT SELECT ON x$_ksuse TO *USERNAME*
/
CREATE SYNONYM *USERNAME*.x$ksuse FOR SYS.x$_ksuse
/
CREATE VIEW v$_session_wait AS SELECT * FROM v$session_wait
/
GRANT SELECT ON v$_session_wait TO *USERNAME*
/
CREATE SYNONYM *USERNAME*.v$session_wait FOR SYS.v$_session_wait
/
alter user *USERNAME* quota unlimited on USERS
/
alter user *USERNAME* quota unlimited on ACTIONS_01
/
alter user *USERNAME* quota unlimited on ACTIONS_02
/
alter user *USERNAME* quota unlimited on ACTIONS_03
/
alter user *USERNAME* quota unlimited on ACTIONS_04
/
alter user *USERNAME* quota unlimited on BLOB_STORAGE
/
alter user *USERNAME* quota unlimited on INDX
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_INDX
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_01
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_02
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_03
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_04
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_05
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_06
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_07
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_08
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_09
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_11
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_12
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_13
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_14
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_22
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_32
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_17
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_15
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_33
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_10
/
alter user *USERNAME* quota unlimited on STOCK
/
alter user *USERNAME* quota unlimited on STOCKINDX
/
grant administer database trigger to *USERNAME*
/
После установки oracle и создания БД, делаем мультиплексирование control-файлов, на случай разрушения. Для этого:
1) Останавливаем БД. shutdown immediate
2) Клонируем control-файл (делаем из существующего 3 одинаковых с разными именами, из CONTROL01.CTL делаем CONTROL02.CTL и CONTROL03.CTL ).
3) Стартуем БД в режиме nomount. startup nomount/
4) Из-под sysdba выполняем скрипт:
alter system set control_files = 'ПУТЬ_К_ФАЙЛАМ_БД\CONTROL01.CTL','ПУТЬ_К_ФАЙЛАМ_БД\CONTROL02.CTL' ,'ПУТЬ_К_ФАЙЛАМ_БД\CONTROL03.CTL' scope=spfile;
5) Стартуем экземпляр. startup.
6) Дабы убедиться, что теперь задействованы три управляющих файла, из-под sysdba выполняем select * from V$CONTROLFILE, запрос должен вернуть три наших контролфайла.
Создание директории для мониторинга файлов трассировки
*под DBA выясняем где лежат файлы трассировки на сервере
SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Default Trace File'
/*'/u01/app/oracle/diag/rdbms/dkn/DKN/trace/'*/
*под DBA создаем директорию и даем гранты пользователю ТОЖЕ
create or replace directory TRACE_FILES as '/u01/app/oracle/diag/rdbms/dkn/DKN/trace/'
/
grant read,write on directory TRACE_FILES to sys;
/
GRANT READ,write ON DIRECTORY TRACE_FILES TO DBA;
/
grant read,write on directory TRACE_FILES to *USER_NAME*;
/
declare
F1 UTL_FILE.FILE_TYPE;
vexists boolean ;
vfile_length integer ;
vblocksize integer ;
begin
-- F1 := UTL_FILE.FOPEN( 'TRACE_FILES', 'DKN_ora_59370.trc', 'w' ) ;
-- UTL_FILE.PUTF(F1, 'Look, Im writing to a file!!!\n');
-- UTL_FILE.FCLOSE(F1);
UTL_FILE.FGETATTR(
'TRACE_FILES', 'DKN_ora_59370.trc' ,
vexists ,
vfile_length ,
vblocksize );
if vexists then DBMS_OUTPUT.Put_Line('true '|| vfile_length||' '||vblocksize );
else DBMS_OUTPUT.Put_Line('false '|| vfile_length||' '||vblocksize ); end if;
end;
Язык системы по умолчанию
Для нерусскоязычных ОС проверить:
Прочие кодировки
Для решения проблемы с отображением шрифтов в CWMS3000 (системные сообщения, всплывающие подсказки) необходимо изменить значения параметров «1250» и «1252», которые находятся в ветке реестра HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ CodePage, с «c_1250.nls» на «c_1251.nls» и с «c_1252.nls» на «c_1251.nls» соответственно.
Для этого
После перезагрузки проблема с неправильным отображением шрифтов должна исчезнуть.
Кодировка Oracle-клиента
Важно изменить значение параметра NLS_Lang на том компе, откуда производится импорт. На машинах клиента тоже можно настроить параметр.
Импорт дампа БД (схемы дистрибуции BOX)
imp.EXE USERID = SYSTEM/<Пароль>@<SID базы> LOG=<файл лога> FILE=<FILE.DAT – схема BOX> FROMUSER=BOX TOUSER=<Пользователь>
pause
Скрипты после импорта
CREATE OR REPLACE CONTEXT CTX_LANG USING *USERNAME*.KK_LANG
/
CREATE OR REPLACE CONTEXT CTX_REP USING *USERNAME*.KK_REP
/
CREATE OR REPLACE CONTEXT ctx_st_barcode USING *USERNAME*.KK_ST_CTX
/
!!!! Важно заменить *ЮЗЕРНЕЙМ* на имя пользователя
begin dbms_job.submit(:job,'BEGIN DBMS_STATS.GATHER_SCHEMA_STATS(ownname => ''ЮЗЕРНЕЙМ'',estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,method_opt => ''FOR ALL COLUMNS SIZE AUTO'',CASCADE => TRUE); commit; end;',trunc(sysdate,'DAY')+6,'trunc(sysdate,''DAY'')+6'); end;
/
begin dbms_job.submit(:job,'begin KK_ST_ALLOC.RunAllocPeriodicalProc; commit; end;',trunc(SYSDATE)+1,'trunc(SYSDATE)+1'); end;
/
begin dbms_job.submit(:job,'declare
vJobN integer;
begin
FOR J In (
select distinct c.auto_reserve_grp as grp
from contragent c where
c.auto_reserve_grp is not null
and sysdate between c.fd and c.td
and not exists (select null from
user_jobs j where WHAT like ''/*AutoReserveGRP=''||c.auto_reserve_grp||''*/%'' )
order by 1
) LOOP
dbms_job.Submit(vJobN,''/*AutoReserveGRP=''||j.grp||''*/begin KK_ST_DOC_NEW.StDocOutAllToReserve(''|| j.grp ||''); commit; end;'' );
kk_common.err_log(''AutoReserveGRP.StDocOutAllToReserve'',vJobN,''RUN JOB'');
commit;
END LOOP;
end;',trunc(sysdate,'mi') + 5/1440,'trunc(sysdate,''mi'') + 5/1440'); end;
/
begin dbms_job.submit(:job,'begin kk_mail.ExternalMailSend; end;',SYSDATE + 5/1440,'SYSDATE + 5/1440'); end;
/
begin dbms_job.submit(:job,'declare
vStr varchar2(2500);
vNextExecute date;
vMail integer;
vMails list_const.val%type := kk_const.GetConstV(''NotifyJob.Error.Notify'',sysdate,0);
begin
FOR J In (select rowid as rd,PL_SQL,NAME
from notify_job
where sysdate >= next_execute
and sysdate between fd and td ) LOOP
begin
vStr := j.PL_SQL;
execute immediate replace(vStr,chr(13),'' '')
using out vNextExecute;
commit;
EXCEPTION
WHEN others THEN
kk_common.err_log(''NOTIFY_JOB'',SQLCODE,substr(j.NAME||'' ''||SQLERRM,1,255));
vMail := kk_mail2.ExternalMailPutInQueue(vMails,''ERROR.USER_JOBS.''||j.NAME,substr(j.NAME||'' ''||SQLERRM,1,2500));
commit;
select sysdate + 30/1440 into vNextExecute from dual;
end;
update notify_job
set next_execute = vNextExecute
where rowid = J.RD;
commit;
END LOOP;
end;',sysdate + 2/1440,'sysdate + 2/1440'); end;
/
commit;
/
Создание триггера Audit_ddl
CREATE OR REPLACE TRIGGER audit_ddl
BEFORE
DDL
ON DATABASE
declare
l_osuser VARCHAR2(100);
l_program VARCHAR2(100);
sql_text ora_name_list_t;
stmt VARCHAR2(2000);
l_cnt pls_integer;
vLocator CLOB;
vEDITOR_IP varchar2(50);
vEDITOR_DSC varchar2(200);
vLastTD date;
begin
IF (ora_dict_obj_owner = '*USERNAME*')
THEN
IF ora_sysevent in ('ALTER','ANALYZE') and ora_dict_obj_type in ('FUNCTION','PACKAGE','PACKAGE BODY','TRIGGER')
or ora_dict_obj_type in ('TYPE') THEN
NULL;
ELSE
select upper(osuser), upper(program) into l_osuser, l_program from v$session
WHERE AUDSID=SYS_CONTEXT('USERENV','SESSIONID');
if ora_dict_obj_type in ('PACKAGE','PACKAGE BODY') then
begin
select p.EDITOR_IP,p.EDITOR_DSC ,nvl(last_td,sysdate) into vEDITOR_IP
,vEDITOR_DSC , vLastTD
from *USERNAME*.CIS_PACKAGE p
where upper(p.name) = upper(ora_dict_obj_name) ;
if vEDITOR_IP is null or vLastTD + 2 < sysdate then
update *USERNAME*.CIS_PACKAGE
set EDITOR_IP = SYS_CONTEXT('userenv', 'IP_ADDRESS')
, EDITOR_DSC = l_program || '; l_osuser='||l_osuser||'; '|| to_char(sysdate,'dd.mm.yyyy hh24:mi:ss')
,last_td = sysdate
where upper(name) = upper(ora_dict_obj_name) ;
else
if nvl(vEDITOR_IP,'NULL') != nvl(SYS_CONTEXT('userenv', 'IP_ADDRESS'),',') then
null;
end if;
end if; --if vEDITOR_IP is null then
EXCEPTION
WHEN NO_DATA_FOUND THEN
null;
end;
end if; --if ora_dict_obj_type in ('PACKAGE','PACKAGE BODY') then
insert into *USERNAME*.CIS_ddl_changes (N, owner, name, type, osuser, program, FD, action, STATUS) values
(*USERNAME*.sq_CIS_DDL_CHANGES.nextval, ora_dict_obj_owner, ora_dict_obj_name,
ora_dict_obj_type, l_osuser, l_program, sysdate, ora_sysevent,0);
declare
LOCATOR1 clob;
dest_offset INTEGER := 1;
src_offset INTEGER := 1;
amt INTEGER ;
begin
DBMS_LOB.CREATETEMPORARY (LOCATOR1,TRUE,DBMS_LOB.SESSION);
l_cnt := ora_sql_txt(sql_text);
for i in 1..l_cnt loop
if (Length(sql_text(i)) <= 2000) and
instr(sql_text(i), 'COMPILE BODY REUSE SETTINGS')>0 then
null;
else
dbms_lob.WriteAppend(LOCATOR1, Length(sql_text(i)),sql_text(i));
end if;
end loop;
INSERT INTO *USERNAME*.CIS_DDL_CHANGES_CLOB (CIS_DDL_CHANGES_N,TEXT) VALUES (*USERNAME*.sq_CIS_DDL_CHANGES.currval,EMPTY_CLOB())
RETURNING TEXT into vLocator ;
amt := DBMS_LOB.getlength(LOCATOR1);
dbms_lob.copy(vLocator,LOCATOR1,amt,dest_offset,src_offset);
end;
END IF; --IF ora_sysevent ='ALTER'
END IF;
end;
/
Выполнить под пользователем SYS "предотвращение повторного входа с терминала"
-- Start of DDL Script for Trigger TST.TRG_ON_LOGON
-- Generated 20.02.2015 14:59:44 from TST@TST
CREATE OR REPLACE TRIGGER trg_on_logon
AFTER
LOGON
ON DATABASE
declare
vCnt integer;
begin
if lower(SYS_CONTEXT('userenv', 'TERMINAL')) like lower('%mobile%') then
select/*+ INDEX(a cis_logon_log_s)*/
count(1) into vCnt
from
v$session s
join V$process p on (s.pADDR = p.addr )
join cis_logon_log a on ( a.AUDSID = s.AUDSID and a.SESSIONID = s.SID and a.SERIAL = s.SERIAL# )
where a.ip = SYS_CONTEXT('userenv', 'IP_ADDRESS')
and s.status != 'KILLED';
if vCnt > 0 then
RAISE_application_error(-20000,'Нельзя запустить более двух сессий одновременно!');
end if; -- if vCnt > 0 then
end if; -- if lower(SYS_CONTEXT('userenv', 'TERMINAL')) like lower('%mobile%') then
end trg_on_logon;
/
-- End of DDL Script for Trigger TST.TRG_ON_LOGON
/
Для Oracle 11G рассылки почты в случае ошибки "отказ в доступе к сети в соответствии со списком контроля доступа (ACL)"
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'smtp_mail.xml',
description => 'Permissions to access smtp_mail',
principal => '*USERNAME*', -- ИМЯ пользователя БД
is_grant => TRUE,
privilege => 'connect');
COMMIT;
END;
create role role_smtp_mail;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE (
acl => 'smtp_mail.xml',
principal => 'ROLE_SMTP_MAIL',
is_grant => TRUE,
privilege => 'connect',
position => null);
COMMIT;
END;
/
grant role_smtp_mail to *USERNAME*;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'smtp_mail.xml',
host => '192.168.4.2'); -- smtp сервер!!!!
COMMIT;
END;
/
==Добавить другого пользователя в ACL лист (если пользователей БД, использующих отправку писем - несколько)==
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'smtp_mail.xml',
principal => '*USERNAME2*', --имя второго пользователя
is_grant => TRUE,
privilege => 'connect');
END;
/
Установка Oracle Client
Правка пакетов
ПЕРЕД ЗАПУСКОМ СЛУЖБЫ ИЛИ CWMS3000 обязательно изменить пакеты kk_rep,kk_lang:
kk_rep:
procedure assign(name varchar2, value varchar2) is
begin
dbms_session.set_context('ctx_rep', name, value);
END assign;
kk_lang:
procedure assign(name varchar2, value varchar2) is
begin
dbms_session.set_context('ctx_lang', name, value);
END assign;
Установка CWMS3000
Необходимые условия для разворачивания
Подготовка резервного сервера
hint: Для удобства навигации между RDP-подключениями основного и резервного серверов, рекомендуется установить в качестве "обоев" рабочего стола резервного сервера ярко-красный фон.
Установка СУБД oracle и создание резервной БД.
Запускаем инсталлятор, выбираем метод установки - advanced, нажимаем "next"
тип установки - Enterprise, нажимаем "next"
В следующем окне - Name оставляем по умолчанию, Path должен быть идентичен пути установки БД на основном сервере
В пунктах, имеющих статус "error", проставляем галочки.
Статус должен поменять на " user verified", нажимаем "next"
В следующем окне выбираем "Create a Database", нажимаем "next".
В следующем окне выбираем Advanced, жмем "next".
В следующем окне оставляем значения по умолчанию, жмем "next".
В следующем окне проверяем правильность введённых параметров и нажимаем "Install"
После окончания установки автоматически откроется Database Configuration Assistant. В первом окне выбираем General Purpose, нажимаем "next".
В следующем окне вводим Global Database и SID. Они должны быть ИДЕНТИЧНЫ основной базе.
В следующем окне оставляем всё без изменения.
В следующем окне вводим пароль для системных учётных записей oracle. Он должен быть ИДЕНТИЧЕН паролю на основной базе. Нажимаем "next".
В следующем окне оставляем все данные без изменения, нажимаем "next".
В следующем окне снимаем галочку "Specify Flash Recovery Area", ставим галочку "Enable Archiving, нажимаем кнопку Edit Archive Mode Parameters
В открывшемся окне указываем ПОЛНЫЙ путь к папке с архивными логами. Путь должен быть идентичен пути к папке на основном сервере. Если папки для архивных логов на резервном сервере не существует - её необходимо создать. Имя папки и её местонахождение на локальном диске должны быть полностью идентичными имени и местонахождению на основном сервере. Нажимаем "ok" и "next".
В следующем окне снимаем галочку "Sample Schemas", нажимаем "next"
В следующем окне ставим флаги Custom и Manual.
Единицы измерения ВЕЗДЕ проставляем M Bytes. Рекомендуемые значения:
Shared Pool: 128 M Bytes
Buffer Cache: Указываем размер, исходя из оставшейся свободной оперативной памяти, за вычетом памяти, необходимой для корректной работы операционной системы. Для резервного сервера, имеющего 4 Гб оперативной памяти (как на скриншоте), оптимальным размером Buffer Cache будет 2 Гб, для сервера, имеющего, например, 32 Гб оперативной памяти, оптимальным будет 25 Гб.
Java Pool: 128 M Bytes
Large Pool: 512 M Bytes
PGA Size: 256 M Bytes
Далее на вкладке Character Sets устанавливаем флаг "Choose from the list of character sets", Утанавливаем параметры, согласно скриншоту. Нажимаем кнопку "next".
В следующем окне оставляем все значения по умолчанию и нажимаем next.
В следующем окне оставляем все значения по умолчанию и нажимаем Готово.
В процессе создания БД и применения настроек, может появиться ошибка старта БД. Не пугаемся, нажимаем ОК.
По завершению установки, нажимаем next, в следующем окне - exit.
Далее заходим в диспетчер служб, проверяем, чтобы службы oracle были созданы, и их состояние было как на скриншоте.
Запускаем командную строку, вводим команду sqlplus. Логин sys as sysdba, пароль - указанный при установке. Если все вышеописанные действия были проведены верно - мы увидим информацию о версии СУБД и строку ввода команд SQL.
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для резервного сервера это bwms. Для этого вводим команду:
alter system set db_unique_name='bwms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Останавливаем БД. Для этого вводим команду
shutdown immediate
Удаляем все файлы из каталога БД
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса
WMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WMS)
)
)
BWMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
wms_XPT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
wms_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
wms_DGMGRL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
)
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным
Стартуем службу OracleOraDb10g_home1TNSListener
Подготовка основного сервера
На основном сервере запускаем sqlplus, логин sys as sysdba
Вводим команду
ALTER DATABASE FORCE LOGGING;
Создаём REDO логи, которые в последствии будет использовать резервный сервер. Для этого вводим команду, где указываем путь к папке с ораклом:
ALTER DATABASE ADD STANDBY LOGFILE GROUP 10 ('P:\oracle\product\10.2.0\oradata\VPI\log1c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log2c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log3c.rdo') SIZE 50M;
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для основного сервера это wms. Для этого вводим команду:
alter system set db_unique_name='wms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса
WMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
bwms =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_XPT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_DGMGRL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
)
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным
Стартуем службу OracleOraDb10g_home1TNSListener
Принудительно создаём логи, чтобы в них записались последние транзакции. Для этого вводим команду:
alter system switch logfile; Для надежности - три раза, и СРАЗУ ЖЕ останавливаем базу командой:
shutdown immediate
Стартуем базу в режиме mount. Для этого вводим команду:
startup mount
Создаём контрол-файл для резервного сервера. Для этого вводим команду:
ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'C:\boston.ctl'
Дважды клонируем полученный файл и переименовываем его.
В результате из файла boston.ctl' должно получиться 3 идентичных файла: CONTROL01.CTL, CONTROL02.CTL, CONTROL01.CTL.
Они нам пригодятся чуть позже.
Останавливаем БД. Для этого вводим команду:
shutdown immediate
Останавливаем службу OracleService
Копируем всё содержимое папки E:\oracle\product\10.2.0\oradata\Имя_Инстанса КРОМЕ ФАЙЛОВ С РАСШИРЕНИЕМ .CTL в аналогичную папку резервного сервера.
Далее в ту же папку РЕЗЕРВНОГО сервера копируем контрол-файлы, полученные в результате создания и клонирования файла boston.ctl (см. выше)
Запускаем службу OracleService
Подготовка основной БД закончена, можно продолжать работу в ней в штатном режиме.
Создание и настройка конфигурации data guard broker
Запускаем БД на РЕЗЕРВНОМ сервере. Для этого вводим команду:Далее нам необходимо проверить связь между серверами в рамках алиасов. Для этого на ОСНОВНОМ СЕРВЕРЕ открываем командную строку и вводим команду:
tnsping bwms
результатом команды должен быть отчет об успешном прохождении пинга.
Создаём конфигурацию, добавляем в конфигурацию наши базы, устанавливаем свойства, благодаря которым при добавлении файлов в основную базу, они автоматически будут создаваться на резервной.
Для этого выполняем скрипт:
CREATE CONFIGURATION 'SID БД_BACKUP' AS
PRIMARY DATABASE IS 'wms'
CONNECT IDENTIFIER IS wms;
ADD DATABASE 'bwms' AS
CONNECT IDENTIFIER IS bwms
MAINTAINED AS PHYSICAL;
EDIT DATABASE 'bwms' SET PROPERTY 'StandbyFileManagement'='AUTO';
EDIT DATABASE 'wms' SET PROPERTY 'StandbyFileManagement'='AUTO';
Для того, чтобы убедиться в том, что конфигурация успешно создалась, вводим команду:
show configuration
Далее включаем конфигурацию, вводим команду:
enable configuration
После этого начнется процесс копирования логов с основного сервера на резервный и их применение. Процесс может занимать различное время, в зависимости от того, насколько основная база "убежала вперед" от резервной, после её включения (окончание П.2).
Проверяем валидность конфигурации командой:
show configuration
При успешной синхронизации серверов команда должна возвратить "SUCCESS"
Далее смотрим очередь на применение логов к резервной базе(она должна быть пустая), для этого вводим команду:
SHOW DATABASE 'bwms' 'RecvQEntries';
И очередь на передачу логов с основного сервера(должно быть одно значение):
SHOW DATABASE 'wms' 'SendQEntries'
Инструкция подключения к БД для ПК Windows
Для начала нужно установить Oracle 10.2.0.3
1. Отключаем UAC в Windows
2. Устанавливаем режим совместимости на установочном файле setup.exe
3. Запускаем установочный файл Setup.exe
4. Next
5. Выбираем Administrator
6. Путь оставляем по умолчанию
7. Проверяем нет ли ошибок
8. Install
9. Далее настраиваем соединение. Галочку не ставим, жмём следующий.
10. Оставляем всё как есть, жмём следующий.
11. Задаём имя XX- где XX название инстанса.
12. Оставляем TCP, жмём следующий.
13. Прописываем ip адрес БД
14. Ставим галочку «Yes, perform a test»
15. Нажимаем Change Login. Прописываем USERNAME и PASSWORD от БД, далее жмём следующий.
16. Жмём следующий
17. Оставляем галочку No, жмём следующий.
18. Подключение успешно добавлено. Жмём следующий.
19. Нажимаем готово
20. Установка Oracle завершена. Нажимаем Exit.
21. После установки Oracle, создаём папку на диске С, выдаём полные права на папку, под названием CWMS3000, кладём в неё файл cwms3000.exe и запускаем.
Так же необходимо выдать права на реестр и права на создание глобальных объектов.
Выдача прав на создание глобальных объектов.
• Заходим в локальную политику безопасности.
Для этого с правами администратора нажимаем Пуск, в строке поиска набираем слово "локальная", запускаем Локальную политику безопасности.
• Нажимаем в Локальные политики/Назначение прав пользователя.
• Находим тут Создание глобальных объектов, нажимаем два раза и добавляем проблемного пользователя.
• Применить. Ок.
22. После выгрузки первых dll файлов таких как menu.dll и midas.dll, необходимо зарегистрировать midas.dll под правами локального администратора.
• Запускаем командную строку из-под администратора
• Прописываем следующее «regsvr32 путь до файла\midas.dll»
23. Указываем имя пользователя и пароль от БД, строка соединения SSID
24. Авторизовываемся в системе
Выгрузка из библиотеки
1) Необходимо зайти в утилиты –> библиотеки.
2) Найти в поиске PrintServ.exe и выгрузить нажав на «…»
3) После того, как выгрузили заходим в корневую папку с программой CWMS.
Копируем файл PrinServ.exe в отдельную папку. (Например, PrintServ на диске С)
Запуск в режиме приложения
Для работы службы нам необходимо запустить PrintServ.exe в режиме приложения для выгрузки всех модулей, которые используется при работе сервиса.
1) Запускаем PrintServ.exe
Если так не запускается, то запускаем из командной строки:
2) После запуска, выбираем инстанс
3) Авторизовываемся
4) Ждём примерно 15 минут, для выгрузки всех модулей, после чего закрываем.
Создание службы
1) Открываем командную строку от имени администратора
2) Прописываем путь до файла PrintServ.exe и команду /install, после чего нажимаем enter
3) Служба успешно создана
4) Открываем службы
5) Ищем нами созданную службу
6) Открываем её свойства и переходим во вкладку «Вход в систему»
7) Авторизовываемся под учётной записью с правами администратора, поставив галочку и задав верные данные от неё
Реестр службы
1) Нажимаем Win + R, открывается выполнить
2) Выполняем команду regedit
3) Открывается реестр
4) Переходим по пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SPrintServ
5) Открываем ImagePath
Прописываем после пути такие значения, как:
• BaseName – имя секции, из которой брать значения параметров ресстра
Например “BaseName=TST-TST” – где 1 TST – это база, 2 TST – это пользователь
• TaskGroup – группа задач
Например, если необходимо распараллелить dpc задачи на несколько служб
6) Так как мы создали 1 службу, то прописываем только значение BaseName
Автологин
1) Делаем автологин, для этого в 6 пункте необходимо прописать VTR356
Права на папку
Так же необходимо дать права на папку, в которой лежит PrintServ.exe
Доп сведения
1.Возможны проблемы при печати в Excel в связке Excel 2007 + Windows Server 2008.
Ошибка Service cannot be started. System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Office Excel cannot access the file .......
Для исправления ошибки необходимо: создать папку C:\Windows\SysWOW64\config\systemprofile\Desktop и/или C:\Windows\System32\config\systemprofile\Desktop (в зависимости от разрядности вашей системы)
2. В случае проблем запуска Excel из приложения в случае работы из под сервиса необходимо: Заходим в локальную политику безопасности.Для этого с правами администратора нажимаем Пуск, в строке поиска набираем волшебное слово "локальная", запускаем Локальную политику безопасности.Здесь тыкаем в Локальные политики/Назначение прав пользователя. Находим тут Создание глобальных объектов, кликаем два раза и добавляем проблемного пользователя. Применить.
• Черновик - Начальный статус, который принимает новая созданная задача. Может быть отменена. Сотрудниками технической поддержки проводится первичный анализ для последующего принятия в работу и переводится в статус «Поставлена» или «В работе». При недостаточном объеме информации переводится в статус «На уточнении».
• Поставлена - Задача, готовая к принятию в работу и находится на отделе-исполнителе или сотруднике. В этом статусе не требуется совершать какие-либо действия с задачей, так как это внутренний статус компании.
• В работе – Задача находится в работе. В этом статусе не требуется совершать какие-либо действия с задачей, так как это внутренний статус компании.
• На уточнении - При смене на данный статус задача переводиться на пользователя, от которого требуется получить дополнения. После уточнений переведите задачу на сотрудника, который совершил запрос информации. Если после уточнения вопрос был решен, то переведите задачу в статус «Принята клиентом».
• Клиент уведомлен – Задача протестирована сотрудниками компании и передана клиенту.
• Не принята клиентом – Статус означает, что задача не выполнена. Клиент переводит задачу на группу «Техническая поддержка (Линия1)».
• Возвращена на доработку – После выявления клиентом, каких-либо ошибок или недоработок, она возвращается на доработку сотрудником компании. В этом статусе не требуется совершать какие-либо действия с задачей, так как это внутренний статус компании.
• Принята клиентом – Конечный статус, в котором задача закрывается.
• Приостановлена – Временно приостановлена, если необходимо вернуть в работу, то клиенту нужно сообщить об этом в техническую поддержку по средству почты или телефона.
• Отменена - Статус означает, что задача не актуальна и выполнять не нужно.
Тема (например "Заказ не переводится в статус собран")
Описание
Так же можете выбрать файл для прикрепления к задаче.
Так же по необходимости можете прикрепить файл.
*отмеченные программные продукты не входят в комплект поставки, но желательны для правильной работы системы.
Установка Oracle 10g
Checking operating system version: must be 5.0, 5.1, 5.2 or 6.0. Actual 6.1 Failed <<<<
открыть oraparam.ini и добавить нужную версию в разделе [Certified Versions] через запятую Windows=5.0,5.1,5.2,6.0,6.1 :
В визарде при появлении ошибки поставить галочку "User Verified"
select name from v$datafile where rownum<2;
Далее:
create tablespace ACTIONS_01 logging datafile '<путь к файлу>/ACTIONS_01.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ACTIONS_02 logging datafile '<путь к файлу>/ACTIONS_02.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ACTIONS_03 logging datafile '<путь к файлу>/ACTIONS_03.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ACTIONS_04 logging datafile '<путь к файлу>/ACTIONS_04.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace BLOB_STORAGE logging datafile '<путь к файлу>/BLOB_STORAGE.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace INDX logging datafile '<путь к файлу>/INDX.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_INDX logging datafile '<путь к файлу>/ST_BAR_JOBS_INDX.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_01 logging datafile '<путь к файлу>/ST_BAR_JOBS_01.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_02 logging datafile '<путь к файлу>/ST_BAR_JOBS_02.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_03 logging datafile '<путь к файлу>/ST_BAR_JOBS_03.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_04 logging datafile '<путь к файлу>/ST_BAR_JOBS_04.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_05 logging datafile '<путь к файлу>/ST_BAR_JOBS_05.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_06 logging datafile '<путь к файлу>/ST_BAR_JOBS_06.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_07 logging datafile '<путь к файлу>/ST_BAR_JOBS_07.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_08 logging datafile '<путь к файлу>/ST_BAR_JOBS_08.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_09 logging datafile '<путь к файлу>/ST_BAR_JOBS_09.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_10 logging datafile '<путь к файлу>/ST_BAR_JOBS_10.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_11 logging datafile '<путь к файлу>/ST_BAR_JOBS_11.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_12 logging datafile '<путь к файлу>/ST_BAR_JOBS_12.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_13 logging datafile '<путь к файлу>/ST_BAR_JOBS_13.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_14 logging datafile '<путь к файлу>/ST_BAR_JOBS_14.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_15 logging datafile '<путь к файлу>/ST_BAR_JOBS_15.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_17 logging datafile '<путь к файлу>/ST_BAR_JOBS_17.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_22 logging datafile '<путь к файлу>/ST_BAR_JOBS_22.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_32 logging datafile '<путь к файлу>/ST_BAR_JOBS_32.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_33 logging datafile '<путь к файлу>/ST_BAR_JOBS_33.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace ST_BAR_JOBS_20 logging datafile '<путь к файлу>/ST_BAR_JOBS_20.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace STOCK logging datafile '<путь к файлу>/STOCK.DBF ' size 250M autoextend on next 100M maxsize 16984M;
create tablespace STOCKINDX logging datafile '<путь к файлу>/STOCKINDX.DBF ' size 250M autoextend on next 100M maxsize 16984M;
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED;
CREATE USER *USERNAME*
IDENTIFIED BY *USERPASSWORD*
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
/
GRANT ALTER SESSION TO *USERNAME*
/
GRANT ALTER SYSTEM TO *USERNAME*
/
GRANT CREATE ANY TRIGGER TO *USERNAME*
/
GRANT CREATE LIBRARY TO *USERNAME*
/
GRANT CREATE PROCEDURE TO *USERNAME*
/
GRANT CREATE SEQUENCE TO *USERNAME*
/
GRANT CREATE SESSION TO *USERNAME*
/
GRANT CREATE SYNONYM TO *USERNAME*
/
GRANT CREATE TABLE TO *USERNAME*
/
GRANT CREATE TRIGGER TO *USERNAME*
/
GRANT CREATE TYPE TO *USERNAME*
/
GRANT CREATE VIEW TO *USERNAME*
/
GRANT CREATE ANY CONTEXT TO *USERNAME*
/
GRANT SELECT ON sys.dba_lock TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_alert TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_job TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_lock TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_pipe TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_session TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_sql TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_system TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_crypto TO *USERNAME*
/
GRANT EXECUTE ON sys.dbms_obfuscation_toolkit TO *USERNAME*
/
GRANT SELECT ON sys.v_$lock TO *USERNAME*
/
GRANT SELECT ON sys.v_$process TO *USERNAME*
/
GRANT SELECT ON sys.v_$session TO *USERNAME*
/
GRANT SELECT ON sys.v_$sql TO *USERNAME*
/
GRANT SELECT ON sys.v_$sqltext TO *USERNAME*
/
GRANT SELECT ON sys.v_$parameter TO *USERNAME*
/
CREATE VIEW x$_kglpn AS SELECT * FROM x$kglpn
/
GRANT SELECT ON x$_kglpn TO *USERNAME*
/
CREATE SYNONYM *USERNAME*.x$kglpn FOR SYS.x$_kglpn
/
CREATE VIEW x$_kglob AS SELECT * FROM x$kglob
/
GRANT SELECT ON x$_kglob TO *USERNAME*
/
CREATE SYNONYM *USERNAME*.x$kglob FOR SYS.x$_kglob
/
CREATE VIEW x$_ksuse AS SELECT * FROM x$ksuse
/
GRANT SELECT ON x$_ksuse TO *USERNAME*
/
CREATE SYNONYM *USERNAME*.x$ksuse FOR SYS.x$_ksuse
/
CREATE VIEW v$_session_wait AS SELECT * FROM v$session_wait
/
GRANT SELECT ON v$_session_wait TO *USERNAME*
/
CREATE SYNONYM *USERNAME*.v$session_wait FOR SYS.v$_session_wait
/
alter user *USERNAME* quota unlimited on USERS
/
alter user *USERNAME* quota unlimited on ACTIONS_01
/
alter user *USERNAME* quota unlimited on ACTIONS_02
/
alter user *USERNAME* quota unlimited on ACTIONS_03
/
alter user *USERNAME* quota unlimited on ACTIONS_04
/
alter user *USERNAME* quota unlimited on BLOB_STORAGE
/
alter user *USERNAME* quota unlimited on INDX
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_INDX
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_01
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_02
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_03
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_04
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_05
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_06
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_07
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_08
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_09
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_11
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_12
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_13
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_14
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_22
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_32
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_17
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_15
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_33
/
alter user *USERNAME* quota unlimited on ST_BAR_JOBS_10
/
alter user *USERNAME* quota unlimited on STOCK
/
alter user *USERNAME* quota unlimited on STOCKINDX
/
grant administer database trigger to *USERNAME*
/
После установки oracle и создания БД, делаем мультиплексирование control-файлов, на случай разрушения. Для этого:
1) Останавливаем БД. shutdown immediate
2) Клонируем control-файл (делаем из существующего 3 одинаковых с разными именами, из CONTROL01.CTL делаем CONTROL02.CTL и CONTROL03.CTL ).
3) Стартуем БД в режиме nomount. startup nomount/
4) Из-под sysdba выполняем скрипт:
alter system set control_files = 'ПУТЬ_К_ФАЙЛАМ_БД\CONTROL01.CTL','ПУТЬ_К_ФАЙЛАМ_БД\CONTROL02.CTL' ,'ПУТЬ_К_ФАЙЛАМ_БД\CONTROL03.CTL' scope=spfile;
5) Стартуем экземпляр. startup.
6) Дабы убедиться, что теперь задействованы три управляющих файла, из-под sysdba выполняем select * from V$CONTROLFILE, запрос должен вернуть три наших контролфайла.
Создание директории для мониторинга файлов трассировки
*под DBA выясняем где лежат файлы трассировки на сервере
SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Default Trace File'
/*'/u01/app/oracle/diag/rdbms/dkn/DKN/trace/'*/
*под DBA создаем директорию и даем гранты пользователю ТОЖЕ
create or replace directory TRACE_FILES as '/u01/app/oracle/diag/rdbms/dkn/DKN/trace/'
/
grant read,write on directory TRACE_FILES to sys;
/
GRANT READ,write ON DIRECTORY TRACE_FILES TO DBA;
/
grant read,write on directory TRACE_FILES to *USER_NAME*;
/
declare
F1 UTL_FILE.FILE_TYPE;
vexists boolean ;
vfile_length integer ;
vblocksize integer ;
begin
-- F1 := UTL_FILE.FOPEN( 'TRACE_FILES', 'DKN_ora_59370.trc', 'w' ) ;
-- UTL_FILE.PUTF(F1, 'Look, Im writing to a file!!!\n');
-- UTL_FILE.FCLOSE(F1);
UTL_FILE.FGETATTR(
'TRACE_FILES', 'DKN_ora_59370.trc' ,
vexists ,
vfile_length ,
vblocksize );
if vexists then DBMS_OUTPUT.Put_Line('true '|| vfile_length||' '||vblocksize );
else DBMS_OUTPUT.Put_Line('false '|| vfile_length||' '||vblocksize ); end if;
end;
Язык системы по умолчанию
Для нерусскоязычных ОС проверить:
Прочие кодировки
Для решения проблемы с отображением шрифтов в CWMS3000 (системные сообщения, всплывающие подсказки) необходимо изменить значения параметров «1250» и «1252», которые находятся в ветке реестра HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Nls \ CodePage, с «c_1250.nls» на «c_1251.nls» и с «c_1252.nls» на «c_1251.nls» соответственно.
Для этого
После перезагрузки проблема с неправильным отображением шрифтов должна исчезнуть.
Кодировка Oracle-клиента
Важно изменить значение параметра NLS_Lang на том компе, откуда производится импорт. На машинах клиента тоже можно настроить параметр.
Импорт дампа БД (схемы дистрибуции BOX)
imp.EXE USERID = SYSTEM/<Пароль>@<SID базы> LOG=<файл лога> FILE=<FILE.DAT – схема BOX> FROMUSER=BOX TOUSER=<Пользователь>
pause
Скрипты после импорта
CREATE OR REPLACE CONTEXT CTX_LANG USING *USERNAME*.KK_LANG
/
CREATE OR REPLACE CONTEXT CTX_REP USING *USERNAME*.KK_REP
/
CREATE OR REPLACE CONTEXT ctx_st_barcode USING *USERNAME*.KK_ST_CTX
/
!!!! Важно заменить *ЮЗЕРНЕЙМ* на имя пользователя
begin dbms_job.submit(:job,'BEGIN DBMS_STATS.GATHER_SCHEMA_STATS(ownname => ''ЮЗЕРНЕЙМ'',estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,method_opt => ''FOR ALL COLUMNS SIZE AUTO'',CASCADE => TRUE); commit; end;',trunc(sysdate,'DAY')+6,'trunc(sysdate,''DAY'')+6'); end;
/
begin dbms_job.submit(:job,'begin KK_ST_ALLOC.RunAllocPeriodicalProc; commit; end;',trunc(SYSDATE)+1,'trunc(SYSDATE)+1'); end;
/
begin dbms_job.submit(:job,'declare
vJobN integer;
begin
FOR J In (
select distinct c.auto_reserve_grp as grp
from contragent c where
c.auto_reserve_grp is not null
and sysdate between c.fd and c.td
and not exists (select null from
user_jobs j where WHAT like ''/*AutoReserveGRP=''||c.auto_reserve_grp||''*/%'' )
order by 1
) LOOP
dbms_job.Submit(vJobN,''/*AutoReserveGRP=''||j.grp||''*/begin KK_ST_DOC_NEW.StDocOutAllToReserve(''|| j.grp ||''); commit; end;'' );
kk_common.err_log(''AutoReserveGRP.StDocOutAllToReserve'',vJobN,''RUN JOB'');
commit;
END LOOP;
end;',trunc(sysdate,'mi') + 5/1440,'trunc(sysdate,''mi'') + 5/1440'); end;
/
begin dbms_job.submit(:job,'begin kk_mail.ExternalMailSend; end;',SYSDATE + 5/1440,'SYSDATE + 5/1440'); end;
/
begin dbms_job.submit(:job,'declare
vStr varchar2(2500);
vNextExecute date;
vMail integer;
vMails list_const.val%type := kk_const.GetConstV(''NotifyJob.Error.Notify'',sysdate,0);
begin
FOR J In (select rowid as rd,PL_SQL,NAME
from notify_job
where sysdate >= next_execute
and sysdate between fd and td ) LOOP
begin
vStr := j.PL_SQL;
execute immediate replace(vStr,chr(13),'' '')
using out vNextExecute;
commit;
EXCEPTION
WHEN others THEN
kk_common.err_log(''NOTIFY_JOB'',SQLCODE,substr(j.NAME||'' ''||SQLERRM,1,255));
vMail := kk_mail2.ExternalMailPutInQueue(vMails,''ERROR.USER_JOBS.''||j.NAME,substr(j.NAME||'' ''||SQLERRM,1,2500));
commit;
select sysdate + 30/1440 into vNextExecute from dual;
end;
update notify_job
set next_execute = vNextExecute
where rowid = J.RD;
commit;
END LOOP;
end;',sysdate + 2/1440,'sysdate + 2/1440'); end;
/
commit;
/
Создание триггера Audit_ddl
Выполнить под пользователем SYS "Сохранение истории системных пакетов"
CREATE OR REPLACE TRIGGER audit_ddl
BEFORE
DDL
ON DATABASE
declare
l_osuser VARCHAR2(100);
l_program VARCHAR2(100);
sql_text ora_name_list_t;
stmt VARCHAR2(2000);
l_cnt pls_integer;
vLocator CLOB;
vEDITOR_IP varchar2(50);
vEDITOR_DSC varchar2(200);
vLastTD date;
begin
IF (ora_dict_obj_owner = '*USERNAME*')
THEN
IF ora_sysevent in ('ALTER','ANALYZE') and ora_dict_obj_type in ('FUNCTION','PACKAGE','PACKAGE BODY','TRIGGER')
or ora_dict_obj_type in ('TYPE') THEN
NULL;
ELSE
select upper(osuser), upper(program) into l_osuser, l_program from v$session
WHERE AUDSID=SYS_CONTEXT('USERENV','SESSIONID');
if ora_dict_obj_type in ('PACKAGE','PACKAGE BODY') then
begin
select p.EDITOR_IP,p.EDITOR_DSC ,nvl(last_td,sysdate) into vEDITOR_IP
,vEDITOR_DSC , vLastTD
from *USERNAME*.CIS_PACKAGE p
where upper(p.name) = upper(ora_dict_obj_name) ;
if vEDITOR_IP is null or vLastTD + 2 < sysdate then
update *USERNAME*.CIS_PACKAGE
set EDITOR_IP = SYS_CONTEXT('userenv', 'IP_ADDRESS')
, EDITOR_DSC = l_program || '; l_osuser='||l_osuser||'; '|| to_char(sysdate,'dd.mm.yyyy hh24:mi:ss')
,last_td = sysdate
where upper(name) = upper(ora_dict_obj_name) ;
else
if nvl(vEDITOR_IP,'NULL') != nvl(SYS_CONTEXT('userenv', 'IP_ADDRESS'),',') then
null;
end if;
end if; --if vEDITOR_IP is null then
EXCEPTION
WHEN NO_DATA_FOUND THEN
null;
end;
end if; --if ora_dict_obj_type in ('PACKAGE','PACKAGE BODY') then
insert into *USERNAME*.CIS_ddl_changes (N, owner, name, type, osuser, program, FD, action, STATUS) values
(*USERNAME*.sq_CIS_DDL_CHANGES.nextval, ora_dict_obj_owner, ora_dict_obj_name,
ora_dict_obj_type, l_osuser, l_program, sysdate, ora_sysevent,0);
declare
LOCATOR1 clob;
dest_offset INTEGER := 1;
src_offset INTEGER := 1;
amt INTEGER ;
begin
DBMS_LOB.CREATETEMPORARY (LOCATOR1,TRUE,DBMS_LOB.SESSION);
l_cnt := ora_sql_txt(sql_text);
for i in 1..l_cnt loop
if (Length(sql_text(i)) <= 2000) and
instr(sql_text(i), 'COMPILE BODY REUSE SETTINGS')>0 then
null;
else
dbms_lob.WriteAppend(LOCATOR1, Length(sql_text(i)),sql_text(i));
end if;
end loop;
INSERT INTO *USERNAME*.CIS_DDL_CHANGES_CLOB (CIS_DDL_CHANGES_N,TEXT) VALUES (*USERNAME*.sq_CIS_DDL_CHANGES.currval,EMPTY_CLOB())
RETURNING TEXT into vLocator ;
amt := DBMS_LOB.getlength(LOCATOR1);
dbms_lob.copy(vLocator,LOCATOR1,amt,dest_offset,src_offset);
end;
END IF; --IF ora_sysevent ='ALTER'
END IF;
end;
/
Выполнить под пользователем SYS "предотвращение повторного входа с терминала"
-- Start of DDL Script for Trigger TST.TRG_ON_LOGON
-- Generated 20.02.2015 14:59:44 from TST@TST
CREATE OR REPLACE TRIGGER trg_on_logon
AFTER
LOGON
ON DATABASE
declare
vCnt integer;
begin
if lower(SYS_CONTEXT('userenv', 'TERMINAL')) like lower('%mobile%') then
select/*+ INDEX(a cis_logon_log_s)*/
count(1) into vCnt
from
v$session s
join V$process p on (s.pADDR = p.addr )
join cis_logon_log a on ( a.AUDSID = s.AUDSID and a.SESSIONID = s.SID and a.SERIAL = s.SERIAL# )
where a.ip = SYS_CONTEXT('userenv', 'IP_ADDRESS')
and s.status != 'KILLED';
if vCnt > 0 then
RAISE_application_error(-20000,'Нельзя запустить более двух сессий одновременно!');
end if; -- if vCnt > 0 then
end if; -- if lower(SYS_CONTEXT('userenv', 'TERMINAL')) like lower('%mobile%') then
end trg_on_logon;
/
-- End of DDL Script for Trigger TST.TRG_ON_LOGON
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl => 'smtp_mail.xml',
description => 'Permissions to access smtp_mail',
principal => '*USERNAME*', -- ИМЯ пользователя БД
is_grant => TRUE,
privilege => 'connect');
COMMIT;
END;
create role role_smtp_mail;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE (
acl => 'smtp_mail.xml',
principal => 'ROLE_SMTP_MAIL',
is_grant => TRUE,
privilege => 'connect',
position => null);
COMMIT;
END;
/
grant role_smtp_mail to *USERNAME*;
/
BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl => 'smtp_mail.xml',
host => '192.168.4.2'); -- smtp сервер!!!!
COMMIT;
END;
/
==Добавить другого пользователя в ACL лист (если пользователей БД, использующих отправку писем - несколько)==
BEGIN
DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(
acl => 'smtp_mail.xml',
principal => '*USERNAME2*', --имя второго пользователя
is_grant => TRUE,
privilege => 'connect');
END;
/
Установка Oracle Client
Правка пакетов
ПЕРЕД ЗАПУСКОМ СЛУЖБЫ ИЛИ CWMS3000 обязательно изменить пакеты kk_rep,kk_lang :
kk_rep:
procedure assign(name varchar2, value varchar2) is
begin
dbms_session.set_context('ctx_rep', name, value);
END assign;
kk_lang:
procedure assign(name varchar2, value varchar2) is
begin
dbms_session.set_context('ctx_lang', name, value);
END assign;
Установка CWMS3000
Необходимые условия для разворачивания
Подготовка резервного сервера
hint: Для удобства навигации между RDP-подключениями основного и резервного серверов, рекомендуется установить в качестве "обоев" рабочего стола резервного сервера ярко-красный фон.
Установка СУБД oracle и создание резервной БД.
Запускаем инсталлятор, выбираем метод установки - advanced, нажимаем "next"
тип установки - Enterprise, нажимаем "next"
В следующем окне - Name оставляем по умолчанию, Path должен быть идентичен пути установки БД на основном сервере
В пунктах, имеющих статус "error", проставляем галочки.
Статус должен поменять на " user verified", нажимаем "next"
В следующем окне выбираем "Create a Database", нажимаем "next".
В следующем окне выбираем Advanced, жмем "next".
В следующем окне оставляем значения по умолчанию, жмем "next".
В следующем окне проверяем правильность введённых параметров и нажимаем "Install"
После окончания установки автоматически откроется Database Configuration Assistant. В первом окне выбираем General Purpose, нажимаем "next".
В следующем окне вводим Global Database и SID. Они должны быть ИДЕНТИЧНЫ основной базе.
В следующем окне оставляем всё без изменения.
В следующем окне вводим пароль для системных учётных записей oracle. Он должен быть ИДЕНТИЧЕН паролю на основной базе. Нажимаем "next".
В следующем окне оставляем все данные без изменения, нажимаем "next".
В следующем окне снимаем галочку "Specify Flash Recovery Area", ставим галочку "Enable Archiving, нажимаем кнопку Edit Archive Mode Parameters
В открывшемся окне указываем ПОЛНЫЙ путь к папке с архивными логами. Путь должен быть идентичен пути к папке на основном сервере. Если папки для архивных логов на резервном сервере не существует - её необходимо создать. Имя папки и её местонахождение на локальном диске должны быть полностью идентичными имени и местонахождению на основном сервере. Нажимаем "ok" и "next".
В следующем окне снимаем галочку "Sample Schemas", нажимаем "next"
В следующем окне ставим флаги Custom и Manual.
Единицы измерения ВЕЗДЕ проставляем M Bytes. Рекомендуемые значения:
Shared Pool: 128 M Bytes
Buffer Cache: Указываем размер, исходя из оставшейся свободной оперативной памяти, за вычетом памяти, необходимой для корректной работы операционной системы. Для резервного сервера, имеющего 4 Гб оперативной памяти (как на скриншоте), оптимальным размером Buffer Cache будет 2 Гб, для сервера, имеющего, например, 32 Гб оперативной памяти, оптимальным будет 25 Гб.
Java Pool: 128 M Bytes
Large Pool: 512 M Bytes
PGA Size: 256 M Bytes
Далее на вкладке Character Sets устанавливаем флаг "Choose from the list of character sets", Утанавливаем параметры, согласно скриншоту. Нажимаем кнопку "next".
В следующем окне оставляем все значения по умолчанию и нажимаем next.
В следующем окне оставляем все значения по умолчанию и нажимаем Готово.
В процессе создания БД и применения настроек, может появиться ошибка старта БД. Не пугаемся, нажимаем ОК.
По завершению установки, нажимаем next, в следующем окне - exit.
Далее заходим в диспетчер служб, проверяем, чтобы службы oracle были созданы, и их состояние было как на скриншоте.
Запускаем командную строку, вводим команду sqlplus. Логин sys as sysdba, пароль - указанный при установке. Если все вышеописанные действия были проведены верно - мы увидим информацию о версии СУБД и строку ввода команд SQL.
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для резервного сервера это bwms. Для этого вводим команду:
alter system set db_unique_name='bwms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Останавливаем БД. Для этого вводим команду
shutdown immediate
Удаляем все файлы из каталога БД
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса
WMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WMS)
)
)
BWMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
wms_XPT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
wms_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
wms_DGMGRL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
)
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = bwms_DGMGRL)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = bwms)
)
(SID_DESC =
(GLOBAL_DBNAME = bwms_XPT)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = bwms)
)
(SID_DESC =
(GLOBAL_DBNAME = bwms_DGB)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = bwms)
)
(SID_DESC =
(GLOBAL_DBNAME = SID БД)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = SID БД)
)
(SID_DESC =
(GLOBAL_DBNAME = bwms)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = bwms)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
)
Стартуем службу OracleOraDb10g_home1TNSListener
На основном сервере запускаем sqlplus, логин sys as sysdba
Вводим команду
ALTER DATABASE FORCE LOGGING;
Создаём REDO логи, которые в последствии будет использовать резервный сервер. Для этого вводим команду, где указываем путь к папке с ораклом:
ALTER DATABASE ADD STANDBY LOGFILE GROUP 10 ('P:\oracle\product\10.2.0\oradata\VPI\log1c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log2c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log3c.rdo') SIZE 50M;
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для основного сервера это wms. Для этого вводим команду:
alter system set db_unique_name='wms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса
WMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
bwms =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_XPT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_DGMGRL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
)
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = wms_DGMGRL)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = wms)
)
(SID_DESC =
(GLOBAL_DBNAME = wms_XPT)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = wms)
)
(SID_DESC =
(GLOBAL_DBNAME = wms_DGB)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = wms)
)
(SID_DESC =
(GLOBAL_DBNAME = SID БД)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = SID БД)
)
(SID_DESC =
(GLOBAL_DBNAME = wms)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = wms)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
)
Стартуем службу OracleOraDb10g_home1TNSListener
Принудительно создаём логи, чтобы в них записались последние транзакции. Для этого вводим команду:
alter system switch logfile; Для надежности - три раза, и СРАЗУ ЖЕ останавливаем базу командой:
shutdown immediate
Стартуем базу в режиме mount. Для этого вводим команду:
startup mount
Создаём контрол-файл для резервного сервера. Для этого вводим команду:
ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'C:\boston.ctl'
Дважды клонируем полученный файл и переименовываем его.
В результате из файла boston.ctl' должно получиться 3 идентичных файла: CONTROL01.CTL, CONTROL02.CTL, CONTROL01.CTL.
Они нам пригодятся чуть позже.
Останавливаем БД. Для этого вводим команду:
shutdown immediate
Останавливаем службу OracleService
Копируем всё содержимое папки E:\oracle\product\10.2.0\oradata\Имя_Инстанса КРОМЕ ФАЙЛОВ С РАСШИРЕНИЕМ .CTL в аналогичную папку резервного сервера.
Далее в ту же папку РЕЗЕРВНОГО сервера копируем контрол-файлы, полученные в результате создания и клонирования файла boston.ctl (см. выше)
Запускаем службу OracleService
Подготовка основной БД закончена, можно продолжать работу в ней в штатном режиме.
Создание и настройка конфигурации data guard broker
Запускаем БД на РЕЗЕРВНОМ сервере. Для этого вводим команду:Создаём конфигурацию, добавляем в конфигурацию наши базы, устанавливаем свойства, благодаря которым при добавлении файлов в основную базу, они автоматически будут создаваться на резервной.
Для этого выполняем скрипт:
CREATE CONFIGURATION 'SID БД_BACKUP' AS
PRIMARY DATABASE IS 'wms'
CONNECT IDENTIFIER IS wms;
ADD DATABASE 'bwms' AS
CONNECT IDENTIFIER IS bwms
MAINTAINED AS PHYSICAL;
EDIT DATABASE 'bwms' SET PROPERTY 'StandbyFileManagement'='AUTO';
EDIT DATABASE 'wms' SET PROPERTY 'StandbyFileManagement'='AUTO';
Для того, чтобы убедиться в том, что конфигурация успешно создалась, вводим команду:
show configuration
Далее включаем конфигурацию, вводим команду:
enable configuration
После этого начнется процесс копирования логов с основного сервера на резервный и их применение. Процесс может занимать различное время, в зависимости от того, насколько основная база "убежала вперед" от резервной, после её включения (окончание П.2).
Проверяем валидность конфигурации командой:
show configuration
При успешной синхронизации серверов команда должна возвратить "SUCCESS"
Далее смотрим очередь на применение логов к резервной базе(она должна быть пустая), для этого вводим команду:
SHOW DATABASE 'bwms' 'RecvQEntries';
И очередь на передачу логов с основного сервера(должно быть одно значение):
SHOW DATABASE 'wms' 'SendQEntries'
Серийный код транспортной упаковки (SSCC) - это уникальный международный идентификатор для отслеживания объектов логистических операций: паллет или контейнеров. В системе GS1 коды SSCC и другие связанные данные кодируются с помощью прикладных идентификаторов (application Identifiers) и баркодов, например, баркода GS1-128.
Фиксированная длина: 14 цифр
Идентифицирует товары любого уровня вложенности упаковки (продукты, ящики).
Переменная длина: до 20 буквенных символов
Присваивает единице товара уникальный серийный номер, что делает ее более отслеживаемой.
Переменная длина: до 90 символов
Используется для кодирования внутренних данных, таких как номер партии или другой информации от изготовителя.
Поля фиксированной длины: количество символов после прикладного идентификатора предустановлено. Между полями не нужно вставлять дополнительный разделитель, поскольку длина известна.
Пример: прикладной идентификатор 01 всегда состоит из 14 символов.
Поля переменной длины: число символов может варьироваться в пределах лимита по максимуму. Прикладные идентификаторы указываются друг за другом, и чтобы разграничить поля нужен символ-разделитель FNC1 (Function Code 1).
Пример: прикладные идентификаторы 21, 91 и 92 различаются по длине.
Почему переменную длину важно учитывать:
Если после одного поля переменной длины следует другой прикладной идентификатор, то необходим разделитель, чтобы обозначить конец поля.
Если поле переменной длины находится в конце кода, то разделитель не обязателен, поскольку дальше нет информации, которую нужно отделить.
Допустим, вы кодируете следующую информацию в код GS1-128:
01 GTIN: 12345678901231 (14 символов)
21 Серийный номер: SN12345 (переменная длина)
91 Внутренняя информация: Batch001 (переменная длина)
92 Внутренняя информация: Exp2024 (переменная длина)
Этапы кодирования:
Вот закодированные данные:
scss
(01)12345678901231
(21)SN12345<FNC1>
(91)Batch001<FNC1>
(92)Exp2024
Прикладные идентификаторы фиксированной длины (такие как 01):
Между ними не требуется вставлять разделители.
Прикладные идентификаторы переменной длины (такие как 21, 91, 92):
После них нужно вставлять разделитель <FNC1>, если дальше идет еще один идентификатор. Сепаратор позволяет сканерам корректно распарсить все поля.
Понимание различий между полями фиксированной и переменной длины крайне важно при создании баркодов с несколькими элементами данных.
Правильное использование разделителей обеспечивает точное считывание данных и существенно упрощает логистические операции.
пример: 010360797188301321583hwHr?.fA-h\u001d91EE09\u001d92fzNUSTDdkjucjEX6wd/6YRma+BSjg+379r4CvAszZc0=
(01)03607971883013 ---- раздел(01) 14 знаков GTIN код номенклатуры
(21)583hwHr?.fA-h ---- раздел(21) серийный признак переменной длинны поэтому следует разрыв 1d
\u001d ---- разрыв означает что предыдущий раздел завершен
(91)EE09 ---- разделы(91-99) внутренняя информация компании в нашем случае порядковый номер ключа проверки ЧЗ
\u001d ---- break
(92)fzNUSTDdkjucjEX6wd/6YRma+BSjg+379r4CvAszZc0= раздел(92) криптохвост данной марки
Подготовка резервного сервера
hint: Для удобства навигации между RDP-подключениями основного и резервного серверов, рекомендуется установить в качестве "обоев" рабочего стола резервного сервера ярко-красный фон.
Установка СУБД oracle и создание резервной БД.
Запускаем инсталлятор, выбираем метод установки - advanced, нажимаем "next"
тип установки - Enterprise, нажимаем "next"
В следующем окне - Name оставляем по умолчанию, Path должен быть идентичен пути установки БД на основном сервере
В пунктах, имеющих статус "error", проставляем галочки.
Статус должен поменять на " user verified", нажимаем "next"
В следующем окне выбираем "Create a Database", нажимаем "next".
В следующем окне выбираем Advanced, жмем "next".
В следующем окне оставляем значения по умолчанию, жмем "next".
В следующем окне проверяем правильность введённых параметров и нажимаем "Install"
После окончания установки автоматически откроется Database Configuration Assistant. В первом окне выбираем General Purpose, нажимаем "next".
В следующем окне вводим Global Database и SID. Они должны быть ИДЕНТИЧНЫ основной базе.
В следующем окне оставляем всё без изменения.
В следующем окне вводим пароль для системных учётных записей oracle. Он должен быть ИДЕНТИЧЕН паролю на основной базе. Нажимаем "next".
В следующем окне оставляем все данные без изменения, нажимаем "next".
В следующем окне снимаем галочку "Specify Flash Recovery Area", ставим галочку "Enable Archiving, нажимаем кнопку Edit Archive Mode Parameters
Standby15.JPG
В открывшемся окне указываем ПОЛНЫЙ путь к папке с архивными логами. Путь должен быть идентичен пути к папке на основном сервере. Если папки для архивных логов на резервном сервере не существует - её необходимо создать. Имя папки и её местонахождение на локальном диске должны быть полностью идентичными имени и местонахождению на основном сервере. Нажимаем "ok" и "next".
В следующем окне снимаем галочку "Sample Schemas", нажимаем "next"
В следующем окне ставим флаги Custom и Manual.
Единицы измерения ВЕЗДЕ проставляем M Bytes. Рекомендуемые значения:
Shared Pool: 128 M Bytes
Buffer Cache: Указываем размер, исходя из оставшейся свободной оперативной памяти, за вычетом памяти, необходимой для корректной работы операционной системы. Для резервного сервера, имеющего 4 Гб оперативной памяти (как на скриншоте), оптимальным размером Buffer Cache будет 2 Гб, для сервера, имеющего, например, 32 Гб оперативной памяти, оптимальным будет 25 Гб.
Java Pool: 128 M Bytes
Large Pool: 512 M Bytes
PGA Size: 256 M Bytes
Далее на вкладке Character Sets устанавливаем флаг "Choose from the list of character sets", Утанавливаем параметры, согласно скриншоту. Нажимаем кнопку "next".
В следующем окне оставляем все значения по умолчанию и нажимаем next.
В следующем окне оставляем все значения по умолчанию и нажимаем Готово.
В процессе создания БД и применения настроек, может появиться ошибка старта БД. Не пугаемся, нажимаем ОК.
По завершению установки, нажимаем next, в следующем окне - exit.
Далее заходим в диспетчер служб, проверяем, чтобы службы oracle были созданы, и их состояние было как на скриншоте.
Запускаем командную строку, вводим команду sqlplus. Логин sys as sysdba, пароль - указанный при установке. Если все вышеописанные действия были проведены верно - мы увидим информацию о версии СУБД и строку ввода команд SQL.
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для резервного сервера это bwms. Для этого вводим команду:
alter system set db_unique_name='bwms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Останавливаем БД. Для этого вводим команду
shutdown immediate
Удаляем все файлы из каталога БД
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса
WMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WMS)
)
)
BWMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
wms_XPT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
wms_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
wms_DGMGRL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
)
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным
Стартуем службу OracleOraDb10g_home1TNSListener
Подготовка основного сервера
На основном сервере запускаем sqlplus, логин sys as sysdba
Вводим команду
ALTER DATABASE FORCE LOGGING;
Создаём REDO логи, которые в последствии будет использовать резервный сервер. Для этого вводим команду, где указываем путь к папке с ораклом:
ALTER DATABASE ADD STANDBY LOGFILE GROUP 10 ('P:\oracle\product\10.2.0\oradata\VPI\log1c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log2c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log3c.rdo') SIZE 50M;
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для основного сервера это wms. Для этого вводим команду:
alter system set db_unique_name='wms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса
WMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
bwms =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_XPT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_DGMGRL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
)
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным
Стартуем службу OracleOraDb10g_home1TNSListener
Принудительно создаём логи, чтобы в них записались последние транзакции. Для этого вводим команду:
alter system switch logfile; Для надежности - три раза, и СРАЗУ ЖЕ останавливаем базу командой:
shutdown immediate
Стартуем базу в режиме mount. Для этого вводим команду:
startup mount
Создаём контрол-файл для резервного сервера. Для этого вводим команду:
ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'C:\boston.ctl'
Дважды клонируем полученный файл и переименовываем его.
В результате из файла boston.ctl' должно получиться 3 идентичных файла: CONTROL01.CTL, CONTROL02.CTL, CONTROL01.CTL.
Они нам пригодятся чуть позже.
Останавливаем БД. Для этого вводим команду:
shutdown immediate
Останавливаем службу OracleService
Копируем всё содержимое папки E:\oracle\product\10.2.0\oradata\Имя_Инстанса КРОМЕ ФАЙЛОВ С РАСШИРЕНИЕМ .CTL в аналогичную папку резервного сервера.
Далее в ту же папку РЕЗЕРВНОГО сервера копируем контрол-файлы, полученные в результате создания и клонирования файла boston.ctl (см. выше)
Запускаем службу OracleService
Подготовка основной БД закончена, можно продолжать работу в ней в штатном режиме.
Создание и настройка конфигурации data guard broker
Запускаем БД на РЕЗЕРВНОМ сервере. Для этого вводим команду:
startup
По результатам выполнения :
создана резервная база
создан слепок основной базы и перенесен на резервный сервер
резервная база запущена и имеет точную копию основной
Далее нам необходимо проверить связь между серверами в рамках алиасов. Для этого на ОСНОВНОМ СЕРВЕРЕ открываем командную строку и вводим команду:
tnsping bwms
результатом команды должен быть отчет об успешном прохождении пинга.
Создаём конфигурацию, добавляем в конфигурацию наши базы, устанавливаем свойства, благодаря которым при добавлении файлов в основную базу, они автоматически будут создаваться на резервной.
Для этого выполняем скрипт:
CREATE CONFIGURATION 'SID БД_BACKUP' AS
PRIMARY DATABASE IS 'wms'
CONNECT IDENTIFIER IS wms;
ADD DATABASE 'bwms' AS
CONNECT IDENTIFIER IS bwms
MAINTAINED AS PHYSICAL;
EDIT DATABASE 'bwms' SET PROPERTY 'StandbyFileManagement'='AUTO';
EDIT DATABASE 'wms' SET PROPERTY 'StandbyFileManagement'='AUTO';
Для того, чтобы убедиться в том, что конфигурация успешно создалась, вводим команду:
show configuration
Далее включаем конфигурацию, вводим команду:
enable configuration
После этого начнется процесс копирования логов с основного сервера на резервный и их применение. Процесс может занимать различное время, в зависимости от того, насколько основная база "убежала вперед" от резервной, после её включения (окончание П.2).
Проверяем валидность конфигурации командой:
show configuration
При успешной синхронизации серверов команда должна возвратить "SUCCESS"
Далее смотрим очередь на применение логов к резервной базе(она должна быть пустая), для этого вводим команду:
SHOW DATABASE 'bwms' 'RecvQEntries';
И очередь на передачу логов с основного сервера(должно быть одно значение):
SHOW DATABASE 'wms' 'SendQEntries'
Для настройки ежедневного оповещение на почту о работоспособности сервера стендбай, необходимо настроить файл SendDGMGRL.vbs
1. В операционной системе настроить "планировщик заданий", создать задачу на ежедневное исполнение файла SendDGMGRL.vbs
2. Открыть на редактирование SendDGMGRL.vbs любым текстовым редактором, в шапке настроить параметры оповещения:
const Cons_Path = "C:\temp\usr" ' Путь к папке
const SMTP_Host = "smtp.nc.ru" 'Адрес SMTP-сервера
const DB_Connection = "sys/*****@DBNAME" 'Параметры подкл. к БД
const SMTP_Subj = "Отчет dgmgrl" ' Тема сообщения
const SMTP_Port = 25 ' Порт SMTP
const SMTP_Name = "cwms3000" ' Логин для отправки
const SMTP_Password = "*****" ' Пароль для отправки
const SMTP_From = "userfrom@post.ru" ' Адрес отправителя
const SMTP_To = notify@cwms3000.ru" ' Адрес получателя
3. Указанным получателем на почту ежедневно высылается отчет в виде:
Subject: Отчет dgmgrl от 26.05.2014 9:30:02
DGMGRL for 32-bit Windows: Version 10.2.0.1.0 - Production
Copyright (c) 2000, 2005, Oracle. All rights reserved.
Добро пожаловать DGMGRL, для получения информации наберите "help".
DGMGRL> Соединение установлено.
DGMGRL> PRIMARY_SEND_QUEUE
STANDBY_NAME STATUS RESETLOGS_ID THREAD
LOG_SEQ TIME_GENERATED TIME_COMPLETED FIRST_CHANGE# NEXT_CHANGE# SIZE (KBs)
CURRENT 601448867
46273 05/26/2014 09:32:13 956587057 13274 DGMGRL> STANDBY_RECEIVE_QUEUE
STATUS RESETLOGS_ID THREAD LOG_SEQ
TIME_GENERATED TIME_COMPLETED FIRST_CHANGE# NEXT_CHANGE# SIZE (KBs) DGMGRL> Configuration
Name: DKN_BACKUP
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
wms - Primary database
bwms - Physical standby database
Текущее состояние для "DKN_BACKUP": SUCCESS
При получении уведомления на почту, необходимо обратить внимание на очередь заданий, выделено красным, при наличие 5 и более невыполненных заданий, обратиться в ОТП. Также необходимо обратить внимание на последние строки, описывающие состояние конфигурации(Текущее состояние для "DKN_BACKUP": SUCCESS). Если не success, значит есть проблемы в самой конфигурции.
Первая очередь (PRIMARY_SEND_QUEUE) - не отправленные архивные логи с основного сервера на резервный. Вторая (STANDBY_RECEIVE_QUEUE) - отправленные, но не применённые логи на резервном сервере. Т.е. если первая очередь большая, значит проблемы в транспорте. Если большая вторая очередь - проблема с резервным сервером. В нашем примере мы видим, что в очереди на отправку один архивный лог, в очереди на применение логов нет.
Интерфейс модуля приходных накладных
При запуске Приходного модуля в первый раз он запускается из меню верхней панели: Рабочие места -> Накладные -> Приходные накладные
После первого запуска он появится в списке основного окна и его можно запускать оттуда
После запуска открывается окно приходного модуля
{width:1%}http://213.221.11.114:33899/attachments/download/2468/skachat.png!:http://213.221.11.114:33899/attachments/download/2460/%D0%9F%D1%80%D0%B8%D0%B5%D0%BC%D0%BA%D0%B0.docx
Интерфейс редактирования документа прихода
Для входа в редактирование приходного документа нужно нажать кнопку редактирования.
Откроется окно с содержимым по данному документу
Внутренняя структура документа приходной накладной разбита на две части – шапка документа и табличная часть. В шапке располагаются поля, которые содержат информацию о реквизитах приходного документа а так же даты операций по данному документу.
Печатные формы модуля приходных накладных
Модуль печати запускается кнопкой «Печать», в окне приходного модуля
После нажатия кнопки «Печать» открывается модуль печати со списком выбора документов печатаемых из приходного модуля
В определенных случаях требуется переместить паллеты с продукцией на другое место.
Так как каждая паллета строго закреплена в каждой ячейке, для перемещения паллеты требуется составлять акт о перемещении.
При открытии вышеуказанного пункта меню Вы увидите следующее:
В верхней части экрана находится список всех актов о перемещении.
Для того чтобы завести новый акт о перемещении нажмите кнопку Новый. Программа предлагает Вам выбрать из списка контрагентов нужного клиента, чей товар Вы перемещаете.
После этого появляется форма, в которой по необходимости заполните поля.
Если Вы не задаете вручную номер акта, он выставляется системой автоматически.
После этого Вы можете производить перемещения. Для этого нажимаете кнопку Добавить. Перед Вами появится окно:
Выбираем тот товар, который нужно переместить, для этого щелкаем на кнопку … рядом с номенклатурой, перед Вами открывается
где Вы можете осуществить поиск либо номеру товара, либо по его коду, либо по наименованию. Конечно, лучше это делать по коду товара.
Вводите первые 6 цифр в поисковик и нажимаете кнопку искать Поисковик предлагает Вам перечень товаров, которые удовлетворяют Вашему запросу:
Нажимаете кнопочку Выбрать напротив нужного Вам наименования товара.
После этого если Вы знаете, с какого номера ячейки Вам надо переместить товар, то введите атрибуты в соответствующие ячейки (этаж, ряд, ярус, место) и нажимаете кнопку Искать, если же, допустим, Вам не принципиально, с какой ячейки снимать товар, то просто нажимаете кнопку Искать.
Перед Вами выпадет список всех ячеек (одной ячейки) доступных на данный момент. Красным шрифтом помечается брак.
После того как Вы нашли нужную Вам ячейку, Вы помечаете галочкой эту ячейку в графе выбор (Вы можете пометить сразу несколько ячеек) и нажимаете Добавить в выбор.
Выбранные Вами ячейки отображаются в нижней части экрана
В столбик Количество Вы заносите количество товара, которое Вы перемещаете. После этого Вы нажимаете Сохранить.
После сохранения Вы возвращаетесь к форме на рис 1, в нижней части формы появится запись о выбранном Вами товаре.
Для того чтобы разместить этот товар на новое место вы нажимаете новый адрес, вводите в соответственные окна адрес новой ячейки, нажимаете Искать, после того как система найдет эту ячейку и вы убедитесь, что она свободна, нажимаете Выбрать.
Если в данном акте Вы хотите провести еще несколько перемещений, повторите все действия по новой, если нет, то нажмите Сохранить.
А затем переведите статус акта в Подтвержденный. Помните, что пока Ваш акт находится в статусе черновика, то ячейки являются свободными в системе и могут быть заняты другими пользователями.
Используется в составе AC CWMS-3000(complex warehouse management system) для автоматизации процесса переупаковки товара из одних артикулов в другие.
Основная форма рабочего места представляет собой панель навигации и таблицы, содержащие список заказов и их составы.
Для создания новой процедуры переупаковки нажмите . После этого откроются окна с выбором контрагента, выбора типа акта и даты резерва переупаковываемой номенклатуры.
Есть 3 основных типа переупаковки:
Для добавления номенклатур в процедуру переупаковки выберите нужную вкладку (из чего переупаковываем или новая номенклатура) и нажмите на кнопку или
. При добавлении исходной номенклатуры Вам откроется окно стока, аналогичное тому, что используется в модуле «Заказы». Во вкладке новая номенклатура открывается окно, аналогичное добавлению номенклатур в приход. После того, как все номенклатуры добавлены, можно приступать к переупаковке. Процедура переупаковки описывается во вкладке «Процедура переупаковки»
Для подтверждения выберите кол-во исходного переупаковываемого товара нажмите . Если выбранное количество не соответствует заявленному, то в поле «Остаток» в исходной номенклатуре останется разница между подобранным и переупакованным. После этого следует разместить получившуюся номенклатуру.
При запуске модуля Заказы в первый раз он запускается из меню верхней панели: Рабочие места -> Накладные -> Заказы
После первого запуска он появится в списке основного окна и его можно запускать от туда
После запуска открывается окно модуля Заказы
В верхней части окна модуля заказов, аналогично модулю приходов, находится меню управления сортировки и отбора приходов по (номеру, дате, номенклатуре номеру паллеты (PID) и т.д.), а так же кнопки создания заказов или загрузки вручную, кнопка доп. модулей, кнопка вызова модуля печати и т.д.
В средней части располагается список со всеми параметрами заказа (номер, дата, и т.д) в виде таблицы. Там же находится управление статусами заказа, а так же данные о процентах выполнения заданий, кнопка создания перемещений в случае Б/А резерва, кнопка создания прихода на основании заказа с автоматическим заполнением по номенклатуре и кол-ву и т.д.
Далее все поля несут информацию о реквизитах и датах документов заказов, а также кнопки удаления документов заказов. В нижней части как и в приходном модуле, есть несколько закладок, в которых находится несколько видов информативных таблиц. Закладка «Состав»: в ней содержится информация о составе документа, который был загружен либо заполнен вручную при создании заказа
Закладка «Задание»: здесь показаны все созданные задания на подбор товара, созданные программой согласно схеме резерва.
Закладка «Подборка заказа»: в этой закладке отображаются выполненные задания, по мере их выполнения
Для входа в редактирование документа заказа нужно нажать кнопку редактирования
Откроется окно с содержимым по данному документу
Внутренняя структура документа заказа разбита на две части – шапка документа и табличная часть. В шапке располагаются поля, которые содержат информацию о реквизитах документа отгрузки а так же даты операций по данному документу и кнопки управленя.
В табличной части есть две основные закладки – «Состав накладной» и «Адреса подбора» В закладке «Состав накладной» содержится информация о товаре и его количестве в заказе (изначальное по документу, зарезервированное по факту наличия) а так же находятся кнопки управления резервом, редактирования и вывода дополнительной информации.
Затем окно стока, с возможностью выбора и резервирования данного товара с определенного адреса или адресов.
Кнопка вызова окна редактирования количества товара (например для выравнивания количества в документе с количеством зарезервированного)
Описание меню окна стока, с возможностью выбора и резервирования товара с определенного адреса или адресов.
Состоит из трех частей: вверху - шапки с полями ввода параметров поиска, по середине – табличной части с содержанием стока и внизу – табличной части с содержанием выбранного (добавляется по мере выбора) После открытия данного модуля по нажатию кнопки «резерв» в таблице заказов, поиск работает по той номенклатуре, по которой была нажата кнопка.
В закладке «Адреса подбора» содержится информация о товаре, адресах его подбора, адресах консолидации собранного, количестве, а так же кнопка удаления подбираемого (иначе кнопка отмены резерва, с возможностью частичной отмены и перемещения на адрес потерянного товара)
Для идентификации каждого человека на складе, одному физическому лицу должен соответствовать сотрудник, заведенный в системе.
Создание сотрудников осуществляется в модуле Рабочие места->Сотрудники->Менеджер сотрудников.
Первым делом необходимо создать дерево должностей, соответствующее организационной структуре предприятия.
Зайдите во вкладку Дерево должностей(1) и дважды кликните по пустому месту (если уже задано некоторое дерево, кликните ниже уже существующих ветвей).
Вы создали новую должность(2). Один клик по созданной должности откроет окно редактирования ее названия(3).
Для создания неравномерной структуры, возможен перенос должностей, т.е. создание дочерних и родительских.
Для этого нужно навести курсор на нужную должность, зажать левую кнопку мыши и переместить объект в нужное место.
Перенос родительских должностей в дочерние запрещен! При переносе должности, содержащей в себе наследников, будет перенесена вся ветвь.
В нижней части таблицы можно увидеть список всех дочерних должностей с указанным номером должности(4) и номером прямого родителя(5).
Создание и редактирование сотрудников осуществляется во вкладке Регистрация(1) этого же модуля.
Чтобы завести в систему нового сотрудника, нажмите Новый сотрудник(2). Далее выберите должность, на которую заступает сотрудник, и заполните значения ФИО.
Поля ограничения нужны при работе с магнитными картами на предприятии.
Просмотр данных о сотруднике возможен выбором должности в дереве(3) и выбором нужного сотрудника из списка принадлежащих выбранной или подчиненной выбранной должности(4).
После этого в основном окне отобразятся данные о сотруднике. Для корректировки данных нажмите Редактировать(5).
Инструкция по поднятию WEB-сервиса для приема документов от внешней системы
Первым делом необходимо скопировать приложение на сервер, создав под него отдельную папку. Например в /opt/http-dpc-loadxml
Логин под рутом
cd opt
mkdir http-dpc-loadxml
Скопировать туда всё содержимое архива
Узнать версию линукса:
cat /etc/issue
Узнать версию Java:
java -version
При необходимости обновиться до java 1.8 на oracle linux
yum install update
yum remove java-1.6.0-openjdk
yum remove java-1.7.0-openjdk
sudo yum install java-1.8.0-openjdk
Перейти в папку:
cd /opt/http-dpc-loadxml
java -jar http-dpc-service-0.0.1-SNAPSHOT.jar --spring.datasource.url=jdbc:oracle:thin:@192.168.50.21:1521:upl --spring.datasource.username=upl --spring.datasource.password=upl --server.servlet.contextPath=/cwms &
(указать в параметрах подключения актуальные данные для соединения с БД клиента, в примере запуск для UPL)
Важно символ & в конце не забыть! иначе приложение закроется при закрытии сессии терминала
Проверка подключения по GET запросу: http://localhost:7000/cwms/test с сервера должна вернуться строка с текущим временем сервера БД.
DB TIME:2019-06-27 08:00:34.0
Закрыть приложение можно через Kill, указав PID процесса.
Узнать PID можно из логов приложения:
2019-06-27 08:53:52.234 INFO 11032 --- [ main] ru.is.cwms.HttpDpcApplication : Starting HttpDpcApplication on HOME-PC with PID 11032 (started by HOME in D:\work Дима\java_projects\CwmsHttp)
2019-06-27 08:53:52.238 INFO 11032 --- [ main] ru.is.cwms.HttpDpcApplication : No active profile set, falling back to default profiles: default
2019-06-27 08:53:53.909 INFO 11032 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$ba3de3fa] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-27 08:53:54.455 INFO 11032 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 7000 (http)
2019-06-27 08:53:54.486 INFO 11032 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
В данном случае PID - 11032. Так же PID можно узнать же в папке с программой, посмотрев содержимое файла application.pid
cat application.pid
Выведет на экран 11032.
Для проверки установить, например, для Google Chrome расширение Advanced REST client.
Во вкладке HTTP request методом POST отправить запрос, указав соответствующий URL:
В конкретном случае URL имеет следующий вид: http://192.168.50.21:7000/cwms/ws/UPL.NOM
Где UPL.NOM - значение поля ALIAS DPC-задачи по загрузке номенклатур.
Инструкция по поднятию WEB-сервиса для приема документов от внешней системы
Первым делом необходимо скопировать приложение на сервер, создав под него отдельную папку. Например в /opt/http-dpc-loadxml
Логин под рутом
cd opt
mkdir http-dpc-loadxml
Скопировать туда всё содержимое архива
Узнать версию линукса:
cat /etc/issue
Узнать версию Java:
java -version
При необходимости обновиться до java 1.8 на oracle linux
yum install update
yum remove java-1.6.0-openjdk
yum remove java-1.7.0-openjdk
sudo yum install java-1.8.0-openjdk
Перейти в папку:
cd /opt/http-dpc-loadxml
java -jar http-dpc-service-0.0.1-SNAPSHOT.jar --spring.datasource.url=jdbc:oracle:thin:@192.168.50.21:1521:upl --spring.datasource.username=upl --spring.datasource.password=upl --server.servlet.contextPath=/cwms &
(указать в параметрах подключения актуальные данные для соединения с БД клиента, в примере запуск для UPL)
Важно символ & в конце не забыть! иначе приложение закроется при закрытии сессии терминала
Проверка подключения по GET запросу: http://localhost:7000/cwms/test с сервера должна вернуться строка с текущим временем сервера БД.
DB TIME:2019-06-27 08:00:34.0
Закрыть приложение можно через Kill, указав PID процесса.
Узнать PID можно из логов приложения:
2019-06-27 08:53:52.234 INFO 11032 --- [ main] ru.is.cwms.HttpDpcApplication : Starting HttpDpcApplication on HOME-PC with PID 11032 (started by HOME in D:\work Дима\java_projects\CwmsHttp)
2019-06-27 08:53:52.238 INFO 11032 --- [ main] ru.is.cwms.HttpDpcApplication : No active profile set, falling back to default profiles: default
2019-06-27 08:53:53.909 INFO 11032 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$ba3de3fa] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-27 08:53:54.455 INFO 11032 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 7000 (http)
2019-06-27 08:53:54.486 INFO 11032 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
В данном случае PID - 11032. Так же PID можно узнать же в папке с программой, посмотрев содержимое файла application.pid
cat application.pid
Выведет на экран 11032.
Для проверки установить, например, для Google Chrome расширение Advanced REST client.
Во вкладке HTTP request методом POST отправить запрос, указав соответствующий URL:
В конкретном случае URL имеет следующий вид: http://192.168.50.21:7000/cwms/ws/UPL.NOM
Где UPL.NOM - значение поля ALIAS DPC-задачи по загрузке номенклатур.
---
h2. Маркировка sGtin
Если в разделе Wiki не можете найти необходимую документацию - напишите на наш eMail.
1) Необходимо скачать WinSW:
2) Создать папку на локальном диске с названием (Например myapp)
3) Перенести ранее скаченный файл WinSW в созданную нами папку.
4) Переименовать файл WinSW в название сервиса, который вы будете оборачивать, как службу. (Например myapp)
5) Создать одноименный файл XML, в данном случае myapp.xml
6) Открыть файл на редактирование с помощью текстового редактора, в данном случае используем notepad++
7) Копируем пример конфигурации ниже Теги:
<service>
<id>myapp</id>
<name>myapp(powered by WinSW)</name>
<description>run myapp service</description>
<executable>java</executable>
<arguments>-jar mcis-mobile-service_0.0.6-WOL.jar
--spring.datasource.url=jdbc:oracle:thin:@192.168.1.89:1521:tst
--spring.datasource.username=tst
--spring.datasource.password=st
--server.port=10081
--app.session.timeout=900000
</arguments>
<logpath>%BASE%\logs</logpath>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
<delayedAutoStart>true</delayedAutoStart>
<onfailure action="restart" delay="20 sec"/>
<workingdirectory>C:\myapp</workingdirectory>
<priority>normal</priority>
</service>
8) Вставляем конфигурацию в файл открытый на редактировании.
9) Запустить myapp.exe install [options], чтобы установить службу.
10) Запустить, чтобы использовать. myapp.exe start [путь до myapp.xml] --no-elevate
11) Запустить, чтобы увидеть, запущен ли ваш сервис. myapp.exe status [путь до myapp.xml]
1.Патч для инстанса BOX
Выгрузить патчсет с базы разработки и применить патч сет на инстанс №5 BOX
2.Создание нового инстанса базы клиента
Скрипты по созданию инстанса клиента в базе разработки (если клиент не заведен ранее):
INSERT INTO tst.cis_copy
(N,FD,TD,NAME,DSC,WRAP,
LICENSE_CNT,MOBILE_LICENSE_CNT,DPC_MAIL,
EXPIRE,DSC_BACKUP,NEXT_PATCH_DATE)
VALUES
(<номер нового инстанса>,kk_common.GetFD,kk_common.GetTD,'<ПОЛЬЗ_БД>-<ИНСТАНС_БД>','Реквизиты подключения к клиенту',1,
<Кол-во Стац Лицензий>,<Кол-во Моб Лицензий>,<Адрес клиента для рассылки эл писем>,
<Срок лицензии до>,'<Реквизиты сервера БД>',<дата след патча>)
/
Скрипт создание записи о проведенном патче:
INSERT INTO cis_ddl_changes_applyed
(CIS_DDL_CHANGES_N,CIS_COPY_N,USER_N_APPLYED,FD,TD,N,PATCHSET_N)
select max(CIS_DDL_CHANGES_N)
, <порядковый номер инстанса> , <0 или свой номер из списка сотрудников>, sysdate , kk_common.GetTD , 0 , -9
from tst.cis_ddl_changes_applyed where CIS_COPY_N = 5
/
3.Экспорт базы пользователя BOX
Создать экспорт пользователя BOX Экспорт БД
Заархивировать экспорт ZIP, RAR
Передать файл клиенту
Настройка Сервера БД
Решение
1) Зайти в программу cwms3000
2) Далее появляется окно с подключением к базе.
3) Вводим данные:
• Имя пользователя БД
• Пароль БД
• Строка соединения (ip БД:1521:sid)
• Подгружать модули TRUE
• Ставим галочку NET
• Жмём ок
4) Далее попросит выгрузить модули, выгружаем, после чего программа запуститься.
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<DOC> | ||||
<DOC_MOVE> | ||||
<NUMBER> </NUMBER> |
Номер прихода | Да | string | |
<STATUS> </STATUS> |
Статус | Да | integer | 3-отгружен; 2- резерв; 8-собран; 4-недостаток на складе |
<DATE> </DATE> |
Дата и время перемещения | Да | string | |
<TYPE> </TYPE> |
Тип поставки | Нет | string | |
<CONTENT> | Нет | |||
<CODE CODE_ID=’’> | Код товара | Нет | ||
<CNT> </CNT> |
Количество зарезервированного на складе товара | Да | integer | |
<UNIT_TYP> </UNIT_TYP> |
Ед. измерения | Да | string | |
<ST_PART> </ST_PART> |
Идентификатор (номер) партии | Да | string | |
<NOM_TYP> </NOM_TYP> |
Состояние единицы учета -словарь №422 | Да | string | Доступные значения: 1-кондиция; 3-брак; Если предварительный приход то «1» |
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности | Да | string | |
<ADDRESS_FROM> </ADDRESS_FROM> |
Откуда перемещаем – адрес ячейки |
Да | string | |
<ADDRESS_TO> </ADDRESS_TO> |
Куда перемещаем – адрес ячейки | Да | string | |
<STORE_AREA_FROM> </STORE_AREA_FROM> |
Да | string | ||
<STORE_AREA_TO> </STORE_AREA_TO> |
Да | string | ||
</CODE> | ||||
</CONTENT> | ||||
</DOC_IN> | ||||
</DOC> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <!-- Created with Liquid XML Studio Developer Edition 8.1.7.2743 (http://www.liquid-technologies.com) --> <DOC> <DOC_MOVE> <!-- заказ--> <NUMBER>00110</NUMBER> <!-- номер прихода--> <DATE>01.05.2005-15.30.00</DATE> <!-- дата и время --> <STATUS>2</STATUS> <!-- статус заказа 3-отгружен; 2- резерв; 8-собран; 4-недостаток на складе--> <TYPE> </TYPE> <!-- тип поставки--> <CONTENT> <!-- состав прихода--> <CODE CODE="12RSS"> <!-- код товара--> <CNT>10</CNT> <!-- количество зарезервированного на складе--> <UNIT_TYP>шт.</UNIT_TYP> <!--ед измер--> <ST_PART>F12345</ST_PART> <!-- идентификатор (номер) партии--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности --> <ADDRESS_FROM>28-01-05-01</ADDRESS_FROM> <ADDRESS_TO>28-01-01-01</ADDRESS_TO> <STORE_AREA_FROM>ХРАНЕНИЕ</STORE_AREA_FROM> <STORE_AREA_TO>ПОДБОРКА</STORE_AREA_TO> </CODE> <!-- код товара--> </CONTENT> <!-- состав прихода--> </DOC_MOVE> <!-- заказ --> </DOC>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
file | Маска файла для загрузки | Да | ||
PDocN | Номер акта перемещения | Да | ||
PStatusList | Список статусов акта перемещения для которых генерируется flashback | Нет | 0 |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<DOC_COPACK> | ||||
<NUMBER> </NUMBER> |
Номер документа | Да | string | Номер документа, логический |
<id_doc> </id_doc> |
Уникальный идентификатор другой системы | Да | string | Системный для синхронизации с системой управления (СУ) |
<DATE> </DATE> |
дата и время в формате 'dd.mm.yyyy hh24:mi:ss' | Да | string | Дата документа |
<CONTENTS> | Список | Да | ||
<CONTENT> | Элемент списка | Хоть один | Контейнер для двух списков, второй список может отсутствовать | |
<CODE_FROM CODE_ID=""> | Элемент списка 1 | Хоть один элемент | string | Код номенклатуры, из которого переупаковываем |
<CNT> </CNT> |
Количество | Да | integer | Кол-во |
<UNIT_NAME> </UNIT_NAME> |
Сокращение ед. учета | Да | string | В каких ед. измер., термин словаря №354, R_N ссылается на код из словаря №362 |
<ST_PART> </ST_PART> |
Номер партии | Нет | string | Партия |
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности, до | Нет | string | Формат dd.mm.yyyy |
<NOM_TYP> </NOM_TYP> |
Состояние единицы учета | Да | integer | Словарь №422 (1-кондиция, 3-брак) |
</CODE_FROM> | ||||
<CODE_TO CODE_ID=""> | Элемент списка 2 | Нет | string | Код номенклатуры, в который переупаковываем |
<CNT> </CNT> |
Количество | Да | integer | Кол-во |
<UNIT_NAME> </UNIT_NAME> |
Сокращение ед. учета | Да | string | В каких ед. измер., см.выше |
<ST_PART> </ST_PART> |
Номер партии | Нет | string | Партия |
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности, до | Нет | string | Формат dd.mm.yyyy |
<NOM_TYP> </NOM_TYP> |
Состояние единицы учета | Да | integer | Словарь №422 (1-кондиция, 3-брак) |
</CODE_TO> | ||||
</CONTENT> | ||||
</CONTENTS> | ||||
</DOC_COPACK> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <DOC_COPACK> <!-- документ переупаковки --> <NUMBER>111111</NUMBER> <!-- номер документа --> <id_doc>b542c497-2310-11dd-8e3b-000423dc1d39</id_doc> <DATE>01.05.2005-15.30.00</DATE> <!--дата и время--> <CONTENTS> <!-- состав документа переупаковки --> <CONTENT> <!-- состав переупаковки--> <CODE_FROM CODE_ID="ДВЕРЬ"> <!-- код товара используемый как материал--> <CNT>10</CNT> <!-- количество--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <ST_PART_N>F12345</ST_PART_N> <!-- партия--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_FROM> <!-- код товара--> <CODE_FROM CODE_ID="Ручка"> <!-- код товара используемый как материал--> <CNT>10</CNT> <!-- количество--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_FROM> <!-- код товара--> <CODE_TO CODE_TO_ID="Дверь с Ручкой"> <!-- код товара получаемы после формирования комплекта или разсформирования--> <CNT>10</CNT> <!-- количество--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_TO> <!-- код товара --> </CONTENT> <!-- состав переупаковки--> <CONTENT> <!-- состав переупаковки--> <CODE_FROM CODE_ID="Дверь с Ручкой"> <!-- код товара получаемы после формирования комплекта или разсформирования--> <CNT>10</CNT> <!-- количество--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_FROM> <!-- код товара --> <CODE_TO CODE_ID="ДВЕРЬ"> <!-- код товара используемый как материал --> <CNT>10</CNT> <!-- количество --> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362) --> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии --> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности --> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_TO> <!-- код товара --> <CODE_TO CODE_ID="Ручка"> <!-- код товара используемый как материал --> <CNT>10</CNT> <!-- количество --> <UNIT_NAME>шт</UNIT_NAME> <!-- сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362) --> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии --> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности --> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3) --> </CODE_TO> <!-- код товара --> </CONTENT> <!-- состав переупаковки --> </CONTENTS> <!-- состав документа переупаковки --> </DOC_COPACK>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
store_n | p2 | Номер склада | Да | |
file | p3 | Маска файла для загрузки | Да | |
PStatusList | p5 | Тип документа переупаковки | Да | |
PStatusList | p15 | Строка якорей - в стандартном модуле не используется. | Нет |
Тег | Название поля | Тип данных | Тип данных | |
---|---|---|---|---|
<DOC> | ||||
<DOC_OUT> | ||||
<NUMBER> </NUMBER> |
Номер заказа | String | ||
<id_doc> </id_doc> |
Идентификатор документа во внешней системе | String | ||
<STATUS> </STATUS> |
Системный номер текущего статуса | integer | 3-отгружен; 2- резерв; 8-собран; 4-недостаток на складе | |
<STATUS_DSC> </STATUS_DSC> |
Описание статуса, словарь 414 | String | ||
<OLD_STATUS> </OLD_STATUS> |
Системный номер предыдущего статуса | integer | ||
<OLD_STATUS_DSC> </OLD_STATUS_DSC> |
Описание статуса, словарь 414 | String | ||
<TYPE> </TYPE> |
Тип документа | String | ||
<CONTENT> | ||||
<CODE CODE=""> | Код товара | String | ||
<CNT> </CNT> |
Количество товара | Integer | ||
<ACTUAL_CNT> </ACTUAL_CNT> |
Изначально требуемое количество | Integer | ||
<UNIT_TYPE> </UNIT_TYPE> |
Сокращение ед. измерения (шт кор и тд) | String | ||
<ST_PART> </ST_PART> |
Номер партии | String | ||
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности | DATE | ||
<NOM_TYPE> </NOM_TYPE> |
Состояние единицы учета | String | словарь №422 (кондиция - 1 /брак - 3) | |
<SUB_NOM_TYPE> </SUB_NOM_TYPE> |
Сокращение ед. измерения градации | Integer | ||
</CODE> | ||||
<PALL_CONTAINERS> | Узел содержащий все КГУ паллеты | |||
<PALL_CONTAINER PALL_KGU=""> | КГУ паллеты | String | ||
<CONTAINERS> | Узел содержащий все КГУ коробов | |||
<CONTAINER BOX_KGU=""> | КГУ короба | String | ||
<STAMP> </STAMP> |
Марка | String | ||
</CONTAINER> | ||||
</CONTAINERS> | ||||
</PALL_CONTAINER> | ||||
</PALL_CONTAINERS> | ||||
</CONTENT> | ||||
</DOC_OUT> | ||||
</DOC> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <DOC> <DOC_OUT> <!-- заказ --> <NUMBER>020295002</NUMBER> <!-- номер заказа --> <!-- Тип данных string --> <ID_DOC/> <!-- идентификатор документа во внешней системе --> <!-- Тип данных string --> <STATUS>8</STATUS> <!-- Системный номер текущего статуса --> <!-- Тип данных integer --> <STATUS_DSC>Заказ собран</STATUS_DSC> <!-- Описание статуса, словарь №414 --> <!-- Тип данных string --> <OLD_STATUS>3</OLD_STATUS> <!-- Системный номер предыдущего статуса --> <!-- Тип данных integer --> <OLD_STATUS_DSC>Отгружен</OLD_STATUS_DSC> <!-- Описание статуса, словарь №414 --> <!-- Тип данных string --> <TYPE>заказ клиента_ира</TYPE> <!-- Тип документа --> <!-- Тип данных string --> <CONTENT> <!-- Узел состава заказа --> <CODE CODE="5858756875785"> <!-- код товара --> <!-- Тип данных string --> <CNT>5</CNT> <!-- количество зарезервированного на складе --> <!-- Тип данных integer --> <ACTUAL_CNT>5</ACTUAL_CNT> <!-- изначально требуемое количество --> <!-- Тип данных integer --> <UNIT_TYPE>шт</UNIT_TYPE> <!-- Учётная единица --> <!-- Тип данных string --> <ST_PART/> <!-- номер партии --> <!-- Тип данных string --> <EXPIRE_DATE/> <!-- срок годности --> <!-- Тип данных DATE --> <NOM_TYPE>Кондиция</NOM_TYPE> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3) --> <!-- Тип данных string --> <SUB_NOM_TYPE>0</SUB_NOM_TYPE> <!-- состояние градации единицы учета словарь №496 --> <!-- Тип данных integer --> </CODE> <PALL_CONTAINERS> <!-- Узел содержащий все КГУ паллеты --> <PALL_CONTAINER PALL_KGU="00146071238200003900"> <!-- КГУ Паллеты --> <!-- Тип данных string --> <CONTAINERS> <!-- Узел содержащий все КГУ Коробов --> <CONTAINER BOX_KGU="456789456789456789"> <!-- КГУ Короба --> <!-- Тип данных string --> <STAMP>01030410947874432155Qbag!94Zjqw</STAMP> <!-- Марка --> <!-- Тип данных string --> <STAMP>01030410947874432155Qbag!95Zjqw</STAMP> <!-- Марка --> <!-- Тип данных string --> <STAMP>01030410947874432155Qbag!93Zjqw</STAMP> <!-- Марка --> <!-- Тип данных string --> <STAMP>01030410947874432155Qbag!92Zjqw</STAMP> <!-- Марка --> <!-- Тип данных string --> <STAMP>01030410947874432155Qbag!91Zjqw</STAMP> <!-- Марка --> <!-- Тип данных string --> </CONTAINER> </CONTAINERS> </PALL_CONTAINER> </PALL_CONTAINERS> </CONTENT> </DOC_OUT> </DOC>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
file | Маска файла для загрузки | Да | ||
PDocN | Номер заказа | Да | ||
PStatusList | Список статусов заказа для которых генерируется flashback | Нет | 0 |
Тег | Название поля | Тип данных | Тип данных | |
---|---|---|---|---|
<DOC> | ||||
<DOC_IN> | ||||
<NUMBER> </NUMBER> |
Номер прихода | string | Логический номер поставки. Внутренний номер системы CWMS3000 | |
<WMS_ID> </WMS_ID> |
Системный номер документа в ВМС | integer | ||
<INVOICE> </INVOICE> |
Инвойс | integer | ||
<ID_DOC> </ID_DOC> |
Уникальный идентификатор в системе клиента | string | Системный номер из УС клиента | |
<DOC_OUT_ID> </DOC_OUT_ID> |
Связанный заказ | integer | ||
<DATE> </DATE> |
Дата и время прихода | Date | Дата инвойса в формате 'dd.mm.yyyy hh24:mi:ss' | |
<TYPE> </TYPE> |
Тип поставки 1-приход; 2-возврат; 3-неофактур. приход | string | Для ЖЗМа =1 | |
<STATUS> </STATUS> |
Системный номер текущего статуса | integer | 1-Черновик 2-Принят 3-Подтвержден 4-Приходован на склад 5-Принят по факту 6-Размещение по адресам |
|
<STATUS_DSC> </STATUS_DSC> |
Описание статуса, словарь 366 | string | ||
<PUT_ON_STORE_FD> PUT_ON_STORE_FD> |
Дата размещения на сток | Date | Дата размещения в сток | |
<ID_SUPPLIER> </ID_SUPPLIER> |
клиентский номер поставщика | string | ||
<INSPECTOR> </INSPECTOR> |
Системный номер сотрудника контроллера | integer | ||
<CONTENT> | ||||
<CODE CODE="" TYPE=""> | код товара | string; integer | Тип записи 0 - по документу, 1 - по факту | |
<CNT> </CNT> |
Количество товара | integer | ||
<CNT_COND> </CNT_COND> |
Количество товара (конд.) | integer | ||
<CNT_BRAK> </CNT_BRAK> |
Количество товара (брак) | integer | ||
<UNIT_TYPE> </UNIT_TYPE> |
Учетные единицы | string | Сокр. ед. измерения | |
<ST_PART> </ST_PART> |
Номер партии в приходе | string | Партия | |
<PART_NUM> </PART_NUM> |
Номер партии | string | ||
<EXPIRE_DATE> </EXPIRE_DATE> |
срок годности, до | Date | ||
<NOM_TYPE> </NOM_TYPE> |
Состояние единицы учета словарь №422 | Integer | Кондиция - 1; брак - 3 | |
<SUB_NOM_TYPE> </SUB_NOM_TYPE> |
состояние градации единицы учета словарь 496 | integer | ||
<WEIGHT/> | Вес | string | ||
</CODE> | ||||
<PALL_CONTAINERS> | Узел содержащий все КГУ паллеты | |||
<PALL_CONTAINER PALL_KGU=""> | КГУ паллеты | string | ||
<CONTAINERS> | Узел содержащий все КГУ коробов | string | ||
<CONTAINER BOX_KGU=""> | КГУ короба | string | ||
<STAMP> </STAMP> |
Марка | string | ||
</CONTAINER> | ||||
</CONTAINERS> | ||||
</PALL_CONTAINER> | ||||
</PALL_CONTAINERS> | ||||
</CONTENT> | ||||
</DOC_IN> | ||||
</DOC> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <DOC> <DOC_IN> <!-- приходный документ --> <NUMBER>193</NUMBER> <!-- номер прихода --> <!-- Тип данных string --> <WMS_ID>8911903</WMS_ID> <!-- Системный номер документа в ВМС --> <!-- Тип данных integer --> <INVOICE>1234567892</INVOICE> <!-- Инвойс --> <!-- Тип данных integer --> <ID_DOC>testing</ID_DOC> <!-- уникальный идентификатор в системе клиента --> <!-- Тип данных string --> <DOC_OUT_ID>OUT_DOC</DOC_OUT_ID> <!-- Связаный заказ --> <!-- Тип данных integer --> <DATE>2024-02-01T00:00:00</DATE> <!-- дата и время прихода --> <!-- Тип данных Date --> <TYPE>поставка_ира</TYPE> <!-- тип поставки --> <!-- Тип данных string --> <STATUS>6</STATUS> <!-- Системный номер текущего статуса --> <!-- Тип данных integer --> <STATUS_DSC>Размещен</STATUS_DSC> <!-- Описание статуса, словарь №366 --> <!-- Тип данных string --> <PUT_ON_STORE_FD/><!-- дата размещения на сток --> <!-- Тип данных Date --> <ID_SUPPLIER>34234234234</ID_SUPPLIER> <!-- Клиентский номер поставщика --> <!-- Тип данных string --> <INSPECTOR>4755</INSPECTOR> <!-- Системный номер сотрудника контролера --> <!-- Тип данных integer --> <CONTENT> <!-- состав прихода --> <CODE CODE="5858756875785" TYPE="1"> <!-- код товара --> <!-- Тип данных string --> <!-- Тип записи 0-по документу 1 -по факту --> <!-- Тип данных integer --> <CNT>5</CNT> <!-- количество --> <!-- Тип данных integer --> <CNT_COND>5</CNT_COND> <!-- количество кондиции --> <!-- Тип данных integer --> <CNT_BRAK>0</CNT_BRAK> <!-- количество брака --> <!-- Тип данных integer --> <UNIT_TYPE>1</UNIT_TYPE><!-- Учётная единица --> <!-- Тип данных string --> <ST_PART>23233</ST_PART> <!-- номер партии в приходе --> <!-- Тип данных string --> <PART_NUM>29032018 23122020</PART_NUM> <!-- номер партии --> <!-- Тип данных string --> <EXPIRE_DATE>2020-12-23T00:00:00</EXPIRE_DATE> <!-- срок годности --><!-- Тип данных Date --> <NOM_TYPE>1</NOM_TYPE> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3) --> <!-- Тип данных integer --> <SUB_NOM_TYPE>0</SUB_NOM_TYPE> <!-- состояние градации единицы учета словарь №496 --> <!-- Тип данных integer --> <WEIGHT/> <!-- вес --> <!-- Тип данных integer --> </CODE> <CODE CODE="5858756875785" TYPE="0"> <!-- код товара --> <!-- Тип данных string --><!-- Тип записи 0-по документу 1 -по факту --> <!-- Тип данных integer --> <CNT/><!-- количество --><!-- Тип данных integer --> <CNT_COND>10</CNT_COND><!-- количество кондиции --><!-- Тип данных integer --> <CNT_BRAK/><!-- количество брака --><!-- Тип данных integer --> <UNIT_TYPE>1</UNIT_TYPE><!-- Учётная единица --><!-- Тип данных string --> <ST_PART>23219</ST_PART><!-- номер партии в приходе --><!-- Тип данных string --> <PART_NUM>F12345</PART_NUM><!-- номер партии --><!-- Тип данных string --> <EXPIRE_DATE>2020-12-23T00:00:00</EXPIRE_DATE><!-- срок годности --><!-- Тип данных Date --> <NOM_TYPE>1</NOM_TYPE><!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3) --><!-- Тип данных integer --> <SUB_NOM_TYPE>0</SUB_NOM_TYPE><!-- состояние градации единицы учета словарь №496 --><!-- Тип данных integer --> <WEIGHT/><!-- вес --><!-- Тип данных integer --> </CODE> <PALL_CONTAINERS><!-- Узел содержащий все КГУ паллеты --> <PALL_CONTAINER PALL_KGU="123023090000448890"><!-- КГУ Паллеты --><!-- Тип данных string --> <CONTAINERS><!-- Узел содержащий все КГУ Коробов --> <CONTAINER BOX_KGU="456789355890456889"><!-- КГУ Короба --><!-- Тип данных string --> <STAMP>01030410946374432156Mbag!91Zjqw</STAMP><!-- Марка --><!-- Тип данных string --> <STAMP>01030475947874432156Xbag!94Zjqw</STAMP><!-- Марка --><!-- Тип данных string --> <STAMP>01030448947874432156Bbag!92Zjqw</STAMP><!-- Марка --><!-- Тип данных string --> <STAMP>01030410947874442156Nbog!93Zjqw</STAMP><!-- Марка --><!-- Тип данных string --> <STAMP>01030410947871132156Ibag!95Zjqw</STAMP><!-- Марка --><!-- Тип данных string --> </CONTAINER> </CONTAINERS> </PALL_CONTAINER> </PALL_CONTAINERS> </CONTENT> </DOC_IN> </DOC>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
file | Маска файла для загрузки | Да | ||
PDocN | Номер приходной накладной | Да | ||
PStatusList | Список статусов приходной накладной для которых генерируется flashback | Нет | 0 |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
< DOC_CLAIM> | ||||
<NUMBER> </NUMBER> |
Номер акта претензии | Да | string | |
<ID_DOC> </ID_DOC> |
Уникальный идентификатор другой системы | Да | string | |
<DATE> </DATE> |
Дата и время получения претензии | Нет | string | в формате 'dd.mm.yyyy hh24:mi:ss' |
<TYPE> </TYPE> |
Тип претензии | Нет | int | 1-приход; 2-возврат; 3-неофактур. приход |
<AMOUNT> </AMOUNT> |
Размер претенции выраженный в деньгах | Нет | double | |
<STATUS> </STATUS> |
Статус претензии | Нет | int | |
<DSC> </DSC> |
Описание/примечание | Нет | string | |
<CONTENTS> | ||||
<CONTENT> | ||||
<ACCEPT> </ACCEPT> |
Данные о принятии претензии | Да | int | 0 – не принят, 1 - принят |
<CODE> </CODE> |
Код номенклатуры | Да | string | |
<CNT_DOC> </CNT_DOC> |
Количество, указанное в документе | Да | double | |
<NOM_TYP_DOC> </NOM_TYP_DOC> |
Единица измерения, указанная в документе | Да | int | термин словаря №363, R_N ссылается на код из словаря №362 |
<CNT_CLIENT> </CNT_CLIENT> |
Количество, полученное клиентом | Да | double | |
<NOM_TYP_CLIENT> </NOM_TYP_CLIENT> |
Единица измерения, полученная клиентом | Нет | int | термин словаря №363, R_N ссылается на код из словаря №362 |
<EMPLOYEE_ERR> </EMPLOYEE_ERR> |
Сотрудник | Нет | string | Только во флешбеках. |
<NOM_UNIT> </NOM_UNIT> |
Единица учета | Нет | integer | Термин из словаря №362 |
<DSC> </DSC> |
Описание/примечание | Нет | string | |
</CONTENT> | ||||
</CONTENTS> | ||||
<LINKED_DOCS> | Связные документы | |||
<DOC> | ||||
<NUMBER> </NUMBER> |
Порядковый номер документа в претензии | Да | string | |
<ID_DOC> </ID_DOC> |
Номер связного документа | Да | string | |
<DOC_TYP> </DOC_TYP> |
Тип связного документа | Да | int | Код и словаря №416 |
</DOC> | ||||
</LINKED_DOCS> | ||||
</DOC_CLAIM> |
<?xml version="1.0" encoding="Windows-1251"?> <DOC_CLAIM> <NUMBER>Внутренний_номер</NUMBER> <ID_DOC>внешний_номер</ID_DOC> <DATE>01.01.1990</DATE> <TYPE>5</TYPE> <!--тип претензии --> <AMOUNT>1</AMOUNT> <STATUS>1</STATUS> <DSC>Описание_претензии</DSC> <CONTENTS> <CONTENT> <ACCEPT>1</ACCEPT> <CODE>Номенклатура_01</CODE> <CNT_DOC>1</CNT_DOC> <NOM_TYP_DOC>1</NOM_TYP_DOC> <CNT_CLIENT>1</CNT_CLIENT> <NOM_TYP_CLIENT>1</NOM_TYP_CLIENT> <EMPLOYEE_ERR>Текст_ошибки</EMPLOYEE_ERR> <DSC>Описание</DSC> <NOM_UNIT>1</NOM_UNIT> </CONTENT> </CONTENTS> <LINKED_DOCS> <DOC> <NUMBER>Связанный_документ</NUMBER> <ID_DOC>Связанный_документ_внешнее_имя</ID_DOC> <DOC_TYPE>1</DOC_TYPE> <!--тип документа --> </DOC> </LINKED_DOCS> </DOC_CLAIM>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
file | p3 | Маска для файла, напр, =D:\PI\DICT\IN\*.xml | Да | |
UTF | p4 | Если не пустой- файл в кодировке UTF-8. | Да | |
DOC_TYP_1 DOC_TYP_2 ... |
p5_1 p5_2 ... |
DOC_TYP_xxx=YYY - документ во внешней системе имеет тип xxx, такой тип указан в файле, в CWMS имеет тип YYY. Список типов- словарь 316 | Да | |
DefaultDocStatus | p8 | Статус претензии по умолчанию, используется, если не указан в файле | Нет | 0 |
DefaultDocType | p9 | Документ получает такой тип, если тип не указан или не может быть определен | Нет | 0 |
debug | p14 | Статус претензии по умолчанию, используется, если не указан в файле | Нет | 0 |
debugEx | p14ex | Расширенный режим отладки | Нет | 0 |
IgnoreNom | p18 | Игнорировать неизвестную ном. Иначе- ошибка | Нет | 0 |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<DOC_INV_NOTIFY> | Открывающийся тэг | |||
<DOC_NUMBER> </DOC_NUMBER> |
Номер задания на инвентаризацию | Да | string | |
<INV_DATE> </INV_DATE> |
Дата отчета | Да | string | В формате дд.мм.гггг чч:мм:сс |
<DSC> </DSC> |
Комментарий к заданию | Да | string | |
<STATUS> </STATUS> |
Статус задания | Да | Integer | Словарь 333 |
<REC_COUNT> </REC_COUNT> |
Количество номенклатур | Нет | Integer | |
<SUM_STOCK> </SUM_STOCK> |
Сумма всех учетных единиц по всем номенклатурам на стоке | Нет | Integer | |
<SUM_INV> </SUM_INV> |
Сумма по инвентаризации | Нет | integer | |
<CONTENT> | Да | открывающийся тег – список | ||
<REC> | Нет | |||
<CODE> </CODE> |
Код номенклатуры | Да | string | |
<CNT_STOCK> </CNT_STOCK> |
Количество на стоке | Да | integer | |
<CNT_INV> </CNT_INV> |
Количество по инвентаризации | Да | integer | |
<REC> | ||||
</CONTENT> | ||||
</DOC_INV_NOTIFY> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <DOC_INV_NOTIFY> <DOC_NUMBER>Номер задания на инвентаризацию</DOC_NUMBER><!-- номер документа--> <INV_DATE>01.01.2011 24:00:22</INV_DATE><!-- дата среза стока -> <DSC>Комментарий с заданию</DSC><!-- примечание--> <STATUS>1</STATUS><!-- статус инвентаризации--> <REC_COUNT>0</REC_COUNT><!-- Всего записей в составе --> <SUM_STOCK>0</SUM_STOCK><!-- Всего кол-во по стоку --> <SUM_INV>0</SUM_INV><!-- Всего кол-во по инвентаризации --> <CONTENT> <REC> <CODE>Кодтовара</CODE> <NOM_TYP>1</NOM_TYP> <SUB_NOM_TYP>0</SUB_NOM_TYP> <CNT_STOCK>0</CNT_STOCK> <CNT_INV>0</CNT_INV> </REC> <REC> <CODE>Кодтовара</CODE> <NOM_TYP>1</NOM_TYP> <SUB_NOM_TYP>0</SUB_NOM_TYP> <CNT_STOCK>0</CNT_STOCK> <CNT_INV>0</CNT_INV> </REC> </CONTENT> </DOC_INV_NOTIFY>
Решение
1) Необходимо найти нужный доступ (например StBarCodeManualInputInDocNum)
2) Найти себя в сотрудниках.
3) Смотрим справа этот доступ, если он есть в списке тогда добавляем:
Если доступа нет в списке, значит он есть у данного сотрудника.
4) Ищем доступ внизу в поиске
5) Если есть редактируем его как вам нужно
6) Меняем значение в поле доступ.
3 – Разрешить
0 – Запретить
После чего сохраняем.
Выгружать не более 100 объектов в один файл!!!
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<REFERENCES_LIST> | Справочник поставщиков контрагентов | |||
<CLIENT_LIST> | Да | |||
<ORGANIZATION> | Да | |||
<ORG_ID> </ORG_ID> |
Уникальный идентификатор | Да | string | |
<SHORT_ORG_NAME> </SHORT_ORG_NAME> |
Короткое название клиента | Да | string | |
<ORG_NAME> </ORG_NAME> |
Название клиента | Да | string | |
<ADR_JUR> </ADR_YUR> |
Юридический адрес | Да | string | |
<ADDR_FACT> </ADDR_FACT> |
Фактический адрес | Да | string | |
<ORG_ACCOUNT> </ORG_ACCOUNT> |
Номер счета | Нет | string | |
<BANK_ACCOUNT> </BANK_ACCOUNT> |
Нет | string | ||
<INN> </INN> |
Нет | string | ||
<KPP> </KPP> |
Нет | string | ||
<BANK_NAME> </BANK_NAME> |
Нет | string | ||
<BIK> </BIK> |
Нет | string | ||
<OKPO> </OKPO> |
Нет | string | ||
<OKONH> </OKONH> |
Нет | string | ||
<OKVED></OKVED> | Нет | string | ||
<ORG_GROUP></ORG_GROUP> | Нет | string | ||
<DSC> </DSC> |
Примечание | Нет | string | |
<RESIDENT> </RESIDENT> |
Резидент | Нет | string | (0/1) Дополнительный тег для клиента и производителя. |
</ORGANIZATION> | ||||
</CLIENT_LIST> | ||||
</REFERENCES_LIST> |
Примечание
Одинаково грузим поставщиков (supplier), покупателей (client), производителей (producer) – соответственно задаем правильно маску типа </br>
TYP =
Поставщик +2^1
Покупатель +2^2
Производитель +2^3
Не используется +2^4
Импортер +2^5
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <!--Справочники--> <REFERENCES_LIST> <!--Справочник поставщиков контрагентов--> <CLIENT_LIST> <ORGANIZATION> <ORG_ID>1</ORG_ID> <SHORT_ORG_NAME>ООО Элитторг</SHORT_ORG_NAME> <ORG_NAME>"ООО Элитторг Солнечногорский р-н,34км Ленинградского ш.,полигон МАДИ,Здание №5,стр.А2"</ORG_NAME> <ADDR_JUR>Солнечногорский р-н,34км Ленинградского ш.,полигон МАДИ,Здание №5,стр.А2 </ADDR_JUR><!-- юр адрес--> <ADDR_FACT> </ADDR_FACT> <!--факт адрес--> <ORG_ACCOUNT></ORG_ACCOUNT> <BANK_ACCOUNT></BANK_ACCOUNT> <INN></INN> <KPP></KPP> <BANK_NAME></BANK_NAME> <BIK></BIK> <OKPO></OKPO> <OKONH></OKONH> <ORG_GROUP></ORG_GROUP> <DSC></DSC> <RESIDENT></RESIDENT> </ORGANIZATION> </CLIENT_LIST> </REFERENCES_LIST>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | Номер контрагента | Да | ||
file | Маска файла для загрузки | Да | ||
utf | Строка, по ум. пустая. Если не пустая, считается, что кодировка файла UTF8 | Нет | 0 | |
anchors | Строка якорей - в стандартном модуле не используется | Нет | ||
ADDR_FACTMustExists | (0/1) Параметр определяет обязательность указания тега ADR_FACT - Фактический адрес | Нет | 0 | |
ADDR_YURMustExists | (0/1) Параметр определяет обязательность указания тега ADR_YR - Юридический адрес | Нет | 0 | |
DESCMustExists | (0/1) Параметр определяет обязательность указания соответствующего тега | Нет | 0 | |
IDMustExists | (0/1) Параметр определяет обязательность указания соответствующего тега. Идентификатор | Нет | 0 |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<DOC_INV> | открывающийся тег | |||
<DOC_NUMBER> </DOC_NUMBER> |
Номер задания на инвентаризацию | Да | string | |
<INV_DATE> </INV_DATE> |
Дата задания | Да | string | В формате дд.мм.гггг чч:мм:сс |
<DSC> </DSC> |
Комментарий к заданию | Да | string | |
<INV_TYPE> </INV_TYPE> |
Тип задания | Да | int | Словарь 334 |
<CONTENT> | открывающийся тег– список | |||
<CODE> </CODE> |
Код номенклатуры | Нет | int | |
</CONTENT> | ||||
</DOC_INV> |
<?xml version="1.0" encoding="windows-1251"?> <DOC_INV> <DOC_NUMBER>Номер задания на инвентаризацию</DOC_NUMBER> <INV_DATE>01.01.2011 23:00:22</INV_DATE> <DSC>Комментарий к заданию</DSC> <INV_TYPE>1</INV_TYPE> <CONTENT> <REC> <CODE>30176D</CODE> <NOM_TYP>1</NOM_TYP> <SUB_NOM_TYP>0</SUB_NOM_TYP> </REC> <REC> <CODE>30176D</CODE> <NOM_TYP>1</NOM_TYP> <SUB_NOM_TYP>0</SUB_NOM_TYP> </REC> </CONTENT> </DOC_INV>
Порядок строк должен обязательно совпадать
Невозможно в XML заводить несколько строчек у 1 позиции
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<DOC> | ||||
<DOC_OUT> | ||||
<NUMBER> </NUMBER> |
Номер заказа (В моем случае будет номер отгрузки) | Да | String | |
<ID_DOC> </ID_DOC> |
Уникальный идентификатор другой (внешней) системы | Да | String | |
<PRIORITY> </PRIORITY> |
Приоритет заданий на подбор (чем больше число, тем выше приоритет) | Нет | integer | |
<DELIVERY_DATE> </DELIVERY_DATE |
Планируемая дата и время доставки | Да | String | в формате 'dd.mm.yyyy hh24:mi:ss' |
<SHIPMENT_DATE> </SHIPMENT_DATE> |
Планируемая дата и время отгрузки | Да | String | в формате 'dd.mm.yyyy hh24:mi:ss' |
<DESTINATION> </DESTINATION> |
Адрес доставки | Да | String | |
<RESPONS_PERS> </RESPONS_PERS> |
Ответственное лицо | Нет | String | |
<CAR_NUMBER> </CAR_NUMBER> |
Номер машины | Нет | String | |
<CUSTOMER_ID> </CUSTOMER_ID> |
Код контрагента | Да | integer | |
<CUSTOMER> </CUSTOMER> |
Получатель (наименование) | Нет | String | |
<CUST_ADDRESS> </CUST_ADDRESS> |
Адрес получателя | Нет | String | |
<TYPE> </TYPE> |
Тип документа | Нет | String | 1-заказ; 3-неофактуренное списание |
<DSC> </DSC> |
Примечание к заказу | Нет | String | |
<CONTENT> | ||||
<CODE CODE_ID=""> | Код товара | Да | String | |
<I_NOM_ID> </I_NOM_ID> |
Уникальный идентификатор номенклатуры | Нет | String | Можно использовать вместо CODE_ID |
<CNT> </CNT> |
Количество | Да | String | |
<UNIT_TYP> </UNIT_TYP> |
Сокращение ед. измерения (шт., кор) | Да | String | |
<ST_PART> </ST_PART> |
номер партии | Да | String | |
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности | Нет | String | |
<NOM_TYP> </NOM_TYP> |
Состояние единицы учета | Да | String | словарь №422 (кондиция - 1 /брак - 3) |
<PRICE> </PRICE> |
Цена продажи | Да | String | |
<RESERVE_SCHEME> </RESERVE_SCHEME> |
Схема резерва | Нет | Integer | |
<SUB_NOM_TYP> </SUB_NOM_TYP> |
Градация кондиции и брака | Нет | integer | словарь №496 |
<EXT_PARAMS> | Набор доп. параметров. | Нет | Открывающий тег | |
<PARAM_NAME> </PARAM_NAME> |
Наименование дополнительного параметра | Нет | string | |
<PARAM_VALUE> </PARAM_VALUE> |
Значение дополнительного параметра | Нет | string | |
<PARAM_CAPTION> </PARAM_CAPTION> |
Описание / примечание | Нет | string | |
</EXT_PARAMS> | Закрывающий тег | |||
<NOM_CHANGE_NOM> | Открывающий тег | Нет | Идентичные номенклатуры | |
<NOM> | Открывающий тег | Нет | Одна из идентичных номенклатур | |
<CODE> </CODE> |
Код номенклатуры | Да | string | |
<ORD> </ORD> |
Порядок резерва | Нет | integer | По умолчанию 1 |
<COEFF> </COEFF> |
Коэффициент конвертации кол-ва | Да | number | По умолчанию 1 |
</NOM> | Закрывающий тег | |||
</NOM_CHANGE_NOM > | Закрывающий тег | |||
</CODE> | ||||
</CONTENT> | ||||
<EXT_PARAMS> | Набор доп. параметров. | Нет | Открывающий тег | |
<PARAM_NAME> </PARAM_NAME> |
Наименование дополнительного параметра | Нет | string | |
<PARAM_VALUE> </PARAM_VALUE> |
Значение дополнительного параметра | Нет | string | |
<PARAM_CAPTION> </PARAM_CAPTION> |
Описание / примечание | Нет | string | |
</EXT_PARAMS> | Закрывающий тег | |||
</DOC_OUT> | ||||
</DOC> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <DOC> <DOC_OUT> <!-- ТЕГ заказа--> <NUMBER>10101</NUMBER> <!-- номер заказа--> <ID_DOC>b542c497-2310-11dd-8e3b-000423dc1d39</ID_DOC> <!--уникальный идентификатор другой системы --> <PRIORITY>100</PRIORITY> <!--уникальный идентификатор другой системы --> <DELIVERY_DATE>2019-11-22T19:00:00</DELIVERY_DATE> <!-- планируемая дата и время доставки в формате 'dd.mm.yyyy hh24:mi:ss'--> <SHIPMENT_DATE>2019-11-22T15:00:00</SHIPMENT_DATE> <!-- планируемая дата и время отгрузки в формате 'dd.mm.yyyy hh24:mi:ss'--> <DESTINATION>Адрес доставки</DESTINATION> <RESPONS_PERS>Иванов В.В.</RESPONS_PERS> <!-- ответственное лицо--> <CAR_NUMBER>о256вв90</CAR_NUMBER> <!-- номер машины--> <CUSTOMER_ID>134</CUSTOMER_ID> <!-- код контрагента--> <CUSTOMER>ООО "Магазин №12"</CUSTOMER> <!-- получаетель--> <CUST_ADDRESS>г.Покров, ул.Ленина 12</CUST_ADDRESS> <!-- адрес получателя--> <TYPE>1</TYPE> <!-- тип документа 1-заказ; 3-неофактуренное списание--> <DSC>Очень нужный товар </DSC> <!--- примечание к заказу--> <CONTENT> <!-- состав заказа--> <CODE CODE_ID="12RSS"> <!-- код товара--> <CNT>10</CNT> <!-- количество--> <UNIT_TYP>шт</UNIT_TYP> <!--сокращение ед. измерения (шт кор и тд)--> <ST_PART>F12345</ST_PART> <!-- номер партии--> <EXPIRE_DATE>2020-05-01</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> <PRICE> </PRICE> <!-- цена продажи--> <RESERVE_SCHEME>11</RESERVE_SCHEME> <!-- схема резерва--> <SUB_NOM_TYP>10</SUB_NOM_TYP> <!-- Градация кондиции/брака--> </CODE> <!-- код товара--> </CONTENT> <!-- состав заказа--> <EXT_PARAMS> <PARAM_NAME>NAME</PARAM_NAME> <PARAM_VALUE>VALUE</PARAM_VALUE> <PARAM_CAPTION>CAPTION</PARAM_CAPTION> </EXT_PARAMS> <!-- дополнительные параметры, определяемые заказчиком--> </DOC_OUT> </DOC>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
store_n | p2 | Номер склада, должен быть согласован с типом док-та | Да | |
file | p3 | Маска для файла, напр, =D:\PI\DICT\IN\*.xml | Да | |
UTF | p4 | Если не пустой- файл в кодировке UTF-8. | Да | |
DOC_TYP_1 DOC_TYP_2 ... |
p5_1 p5_2 ... |
DOC_TYP_xxx=YYY - документ во внешней системе имеет тип xxx, такой тип указан в файле, в CWMS имеет тип YYY. Список типов- словарь 316 | Да | |
UpdateCustomer | p6 | (0/1) Можно ли обновлять имя заказчика и его адрес, если заказчик есть в базе, но имеет другое имя или адрес | Нет | 0 |
DefaultDocStatus | p8 | Какой статус имеет загруженный документ (0- создан) | Да | |
DefaultDocType | p9 | Если не удается определить тип документа- каким типом его считать (внутренний для CWMS тип заказа) | Да | |
UpdatableStatuses | p10 | В каких статусах можно обновлять (перезагружать) документ(,1, по ум.) | Да | |
debug | p14 | Статус претензии по умолчанию, используется, если не указан в файле | Нет | 0 |
debugEx | p14ex | Расширенный режим отладки | Нет | 0 |
anchors | p15 | Якоря (строка) | Нет | 0 |
CustomerMustExists | p16 | (0/1) Поставщик указан в файле, не пустой, существующий. Если пустой или несуществующий- ошибка | Нет | 0 |
RespPersonMustExists | p17 | (0/1, по ум. 0) обязательность тега <RESP_PERSON> | Нет | 0 |
IgnoreNom | p18 | Игнорировать неизвестную ном. Иначе- ошибка | Нет | 0 |
UpdateMode | p19 | Режим обновления: 1- дописывать, 0- перезаписывать (0 по ум.) | Нет | 0 |
CheckContent | p20 | Число (0/1),по ум. 0. Проверка состава, если 1- нельзя загружать накладные с пустым составом | Нет | 0 |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<ROUTES> | ||||
<ROUTE> | ||||
<NUM> </NUM> |
Номер маршрута в CWMS3000 | Да | String | |
<ID_DOC> </ID_DOC> |
Номер маршрута из учётной системы клиента | Да | String | |
<PRIORITY> </PRIORITY> |
Приоритет маршрута | Да | Integer | |
<GATE> </GATE> |
Ворота загрузки маршрута (имена ячеек ворот описанных в CWMS) | Да | String | |
<DEPARTURE_FD> </DEPARTURE_FD> |
Дата и время доставки | Да | String | в формате 'dd.mm.yyyy hh24:mi:ss' |
<CAR_NUM> </CAR_NUM> |
Номер автомобиля | Нет | String | |
<DRIVER_NAME> </DRIVER_NAME> |
Водитель | Нет | String | |
<EXPEDITOR_NAME> </EXPEDITOR_NAME> |
Экспедитор | Нет | String | |
<DSC> </DSC> |
Примечание к маршруту | Нет | String | |
<ORDERS> | ||||
<ORDER> | ||||
<NUM> </NUM> |
Номер транспортного заказа в CWMS3000 | Да | String | совпадает с номером складского заказа |
<ID_DOC> </ID_DOC> |
Номер заказа из учетной системы клиента | Да | String | |
<PRIORITY> </PRIORITY> |
Приоритет заказа | Да | Integer | |
<LOAD_ORDER> </LOAD_ORDER> |
Порядок загрузки в машину | Нет | String | |
<WEIGHT> </WEIGHT> |
Вес | Да | float | |
<VOLUME> </VOLUME> |
Объём | Нет | float | |
<DSC> </DSC> |
Примечание к заказу | Нет | String | |
</ORDER> | ||||
</ORDERS> | ||||
</ROUTE> | ||||
</ROUTES> |
<?xml version="1.0" encoding="Windows-1251"?> <ROUTES> <ROUTE> <NUM>23457 Маршрут</NUM> <ID_DOC>{434557-ddfssddf-344534sd-sdfsdf}</ID_DOC> <PRIORITY>1</PRIORITY> <GATE>ДОК №5</GATE> <DEPARTURE_FD>2019-11-24T20:20:09</DEPARTURE_FD> <CAR_NUM>EBS2543198</CAR_NUM> <DRIVER_NAME>Васильев</DRIVER_NAME> <EXPEDITOR_NAME>Васильев</EXPEDITOR_NAME> <DSC>Быстро</DSC> <ORDERS> <ORDER> <NUM>test15042012</NUM> <ID_DOC>{43427-ddfas-344534sd-sdfsdf}</ID_DOC> <PRIORITY>1</PRIORITY> <LOAD_ORDER>1</LOAD_ORDER> <WEIGHT>820</WEIGHT> <VOLUME>5,3</VOLUME> <DSC>заказ1</DSC> </ORDER> <ORDER> <NUM>test12</NUM> <ID_DOC>{356433-ddfas-344534sd-sasdvvgf}</ID_DOC> <PRIORITY>1</PRIORITY> <LOAD_ORDER>2</LOAD_ORDER> <WEIGHT>850</WEIGHT> <VOLUME>9,1</VOLUME> <DSC>заказ2</DSC> </ORDER> </ORDERS> </ROUTE> </ROUTES>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
file | p3 | Маска для файла, напр, =D:\PI\DICT\IN\*.xml | Да | |
UTF | p4 | Если не пустой- файл в кодировке UTF-8. | Нет | 0 |
wms_out_miss | p5 | Загружать ли файл при наличии в маршруте заказов,не связанных со складскими: 1 - Да, 0 - Нет | Нет | 0 |
UpdatableStatuses | p10 | В каких статусах можно обновлять (перезагружать) документ | Нет | ,1, |
UpdateMode | p19 | Режим обновления состава маршрута: 1- дописывать, 0- перезаписывать | Нет | 0 |
debug | p14 | Режим отладки - не рекомендуется использовать | Нет | 0 |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<DOC_COPACK> | ||||
<NUMBER> </NUMBER> |
Номер документа | Да | string | Номер документа, логический |
<id_doc> </id_doc> |
Уникальный идентификатор другой системы | Да | string | Системный для синхронизации с системой управления (СУ) |
<DATE> </DATE> |
дата и время в формате 'dd.mm.yyyy hh24:mi:ss' | Да | string | Дата документа |
<CONTENTS> | Список | Да | ||
<CONTENT> | Элемент списка | Хоть один | Контейнер для двух списков, второй список может отсутствовать | |
<CODE_FROM CODE_ID=""> | Элемент списка 1 | Хоть один элемент | string | Код номенклатуры, из которого переупаковываем |
<CNT> </CNT> |
Количество | Да | integer | Кол-во |
<UNIT_NAME> </UNIT_NAME> |
Сокращение ед. учета | Да | string | В каких ед. измер., термин словаря №354, R_N ссылается на код из словаря №362 |
<ST_PART> </ST_PART> |
Номер партии | Нет | string | Партия |
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности, до | Нет | string | Формат dd.mm.yyyy |
<NOM_TYP> </NOM_TYP> |
Состояние единицы учета | Да | integer | Словарь №422 (1-кондиция, 3-брак) |
</CODE_FROM> | ||||
<CODE_TO CODE_ID=""> | Элемент списка 2 | Нет | string | Код номенклатуры, в который переупаковываем |
<CNT> </CNT> |
Количество | Да | integer | Кол-во |
<UNIT_NAME> </UNIT_NAME> |
Сокращение ед. учета | Да | string | В каких ед. измер., см.выше |
<ST_PART> </ST_PART> |
Номер партии | Нет | string | Партия |
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности, до | Нет | string | Формат dd.mm.yyyy |
<NOM_TYP> </NOM_TYP> |
Состояние единицы учета | Да | integer | Словарь №422 (1-кондиция, 3-брак) |
</CODE_TO> | ||||
</CONTENT> | ||||
</CONTENTS> | ||||
</DOC_COPACK> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <DOC_COPACK> <!-- документ переупаковки --> <NUMBER>111111</NUMBER> <!-- номер документа --> <id_doc>b542c497-2310-11dd-8e3b-000423dc1d39</id_doc> <DATE>01.05.2005-15.30.00</DATE> <!--дата и время--> <CONTENTS> <!-- состав документа переупаковки --> <CONTENT> <!-- состав переупаковки--> <CODE_FROM CODE_ID="ДВЕРЬ"> <!-- код товара используемый как материал--> <CNT>10</CNT> <!-- количество--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <ST_PART_N>F12345</ST_PART_N> <!-- партия--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_FROM> <!-- код товара--> <CODE_FROM CODE_ID="Ручка"> <!-- код товара используемый как материал--> <CNT>10</CNT> <!-- количество--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_FROM> <!-- код товара--> <CODE_TO CODE_TO_ID="Дверь с Ручкой"> <!-- код товара получаемы после формирования комплекта или разсформирования--> <CNT>10</CNT> <!-- количество--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_TO> <!-- код товара --> </CONTENT> <!-- состав переупаковки--> <CONTENT> <!-- состав переупаковки--> <CODE_FROM CODE_ID="Дверь с Ручкой"> <!-- код товара получаемы после формирования комплекта или разсформирования--> <CNT>10</CNT> <!-- количество--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии--> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_FROM> <!-- код товара --> <CODE_TO CODE_ID="ДВЕРЬ"> <!-- код товара используемый как материал --> <CNT>10</CNT> <!-- количество --> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362) --> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии --> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности --> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> </CODE_TO> <!-- код товара --> <CODE_TO CODE_ID="Ручка"> <!-- код товара используемый как материал --> <CNT>10</CNT> <!-- количество --> <UNIT_NAME>шт</UNIT_NAME> <!-- сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362) --> <ST_PART_N>F12345</ST_PART_N> <!-- номер партии --> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности --> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3) --> </CODE_TO> <!-- код товара --> </CONTENT> <!-- состав переупаковки --> </CONTENTS> <!-- состав документа переупаковки --> </DOC_COPACK>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
store_n | p2 | Номер склада | Да | |
file | p3 | Маска файла для загрузки | Да | |
PDocTyp | p5 | Тип документа переупаковки | Да | |
anchors | p15 | Строка якорей - в стандартном модуле не используется | Нет |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<PLAN> | ||||
<NUMBER> | Номер планируемой поставки/отгрузки | Да | int | |
<DATE> </DATE> |
Дата заявки | Да | string | в формате 'dd.mm.yyyy hh24:mi:ss' |
<DOC_TYPE> </DOC_TYPE> |
Тип документа | Нет | int | Код из словаря №416 |
<IN_DATE> </IN_DATE> |
Планируемая дата и время прибытия | Нет | string | в формате 'dd.mm.yyyy hh24:mi:ss' |
<OUT_DATE> </OUT_DATE> |
Планируемая дата и время отбытия | Нет | string | в формате 'dd.mm.yyyy hh24:mi:ss' |
<RESPONS_PERS> </RESPONS_PERS> |
Экспедитор | Нет | string | |
<CAR_NUMBER> </CAR_NUMBER> |
Номер автомобиля | Нет | string | |
<CUSTOMER> </CUSTOMER> |
Клиент | Нет | string | |
</NUMBER> | ||||
</PLAN> |
<?xml version="1.0" standalone="yes"?> <PLAN> -- ТЕГ планируемого документа <NUMBER="00110"> -- номер документа <DATE>01.05.2008</DATE> -- дата заказа <DOC_TYPE></DOC_TYPE> -- тип документа <IN_DATE>10.05.2008-19.00.00</IN_DATE> -- планируемая дата и время прибытия <OUT_DATE>10.05.2008-15.00.00</OUT_DATE> -- планируемая дата и время отбытия <RESPONS_PERS>Иванов В.В.</RESPONS_PERS> -- ответственное лицо (водитель) <CAR_NUMBER>о256вв90</CAR_NUMBER> -- номер машины <CUSTOMER>ООО "Магазин №12"</CUSTOMER> -- грузополучаетель </NUMBER> -- номер заказа <NUMBER="00111"> <DATE>01.05.2008</DATE> <DOC_TYPE></DOC_TYPE> <IN_DATE>10.05.2008-19.00.00</IN_DATE> <OUT_DATE>10.05.2008-15.00.00</OUT_DATE> <RESPONS_PERS>Иванов В.В.</RESPONS_PERS> <CAR_NUMBER>о255вв90</CAR_NUMBER> <CUSTOMER>ООО "Коломна"</CUSTOMER> </NUMBER> </PLAN> -- ТЕГ планируемого документа
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<DOC> | ||||
<DOC_IN> | ||||
<NUMBER> </NUMBER> |
Номер приходного акта | Да | string | |
<ID_DOC> </ID_DOC> |
Уникальный идентификатор другой системы | Да | string | |
<INVOICE> </INVOICE> |
Инвойс | Нет | string | |
<DOC_OUT_ID> </DOC_OUT_ID> |
ID документа заказа | Нет | string | Исп. для возвратов, пишется в NUM_ACT прих. док-та |
<DATE> </DATE> |
Дата и время приходного акта | Нет | string | в формате 'yyyy-mm-ddThh24:mi:ss' |
<IN_DATE> </IN_DATE> |
Планируемая дата и время приходного акта | Нет | string | Если не задана - используем <INV_DATE> |
<INV_DATE> </INV_DATE> |
Дата инвойса | Да | string | В формате 'yyyy-mm-dd' |
<RESPONS_PERS> </RESPONS_PERS> |
Ответственное лицо | Нет | string | Доп. параметр заказа "Ответственное лицо". |
<CAR_NUMBER> </CAR_NUMBER> |
Номер машины | Нет | string | |
<PALL> </PALL> |
Признаки груза | Нет | string | (1 - на палетах, 0 - нет) |
<EXTERNAL_FILE> </EXTERNAL_FILE> |
Ссылка на внешний файл | Нет | string | |
<TYPE> </TYPE> |
Тип поставки | Да | string | 1-приходная накладная; 2-возврат; 3-неофактур. приход |
<DSC> </DSC> |
Примечание к приходному акту | Нет | string | |
<CUSTOMER_ID> </CUSTOMER_ID> |
Идентификатор поставщика | Нет | string | |
<CUSTOMER> </CUSTOMER> |
Поставщик | Нет | string | |
<CUST_ADDRESS> </CUST_ADDRESS> |
Адрес поставщика | Нет | string | |
<URGENT> </URGENT> |
Срочность | Нет | integer | |
<CONTENT> | ||||
<CODE CODE_ID=""> | Номенклатура | Да | string | |
<I_NOM_ID> </I_NOM_ID> |
Уникальный идентификатор товара | Нет | string | Надо указать либо I_NOM_ID либо CODE |
<UNIT_NAME> </UNIT_NAME> |
сокращение единицы учёта | Нет | string | |
<CNT> </CNT> |
Количество | Нет | float | Общее количество, если есть теги <CONDITION_CNT> |
<NOM_TYP> </NOM_TYP> |
Cостояние единицы учёта | Нет | integer | словарь №422 (кондиция - 1 / брак 3) |
<ST_PART> | Открывающий тег | |||
<PART_NUM> </PART_NUM> |
Номер партии | Нет | string | |
</ST_PART> | Закрывающий тег | |||
<DSC></DSC> | Описание / примечание | Нет | string | |
<NOM_SUB_TYP> </NOM_SUB_TYP> |
Градация кондиции и брака | Нет | integer | словарь №496 |
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности, до | Нет | string | |
<PROD_DATE> </PROD_DATE> |
Дата производства | Нет | string | |
<PRICE> </PRICE> |
Закупочная стоимость товара во внутренней валюте | Нет | float | |
</CODE> | ||||
</CONTENT> | ||||
<EXT_PARAMS > | Набор доп. параметров. | Нет | Открывающий тег | |
<PARAM_NAME> </PARAM_NAME> |
Наименование дополнительного параметра | Нет | string | |
<PARAM_VALUE> </PARAM_VALUE> |
Значение дополнительного параметра | Нет | string | |
<PARAM_CAPTION> </PARAM_CAPTION> |
Описание/примечание | Нет | string | |
</EXT_PARAMS> | Закрывающий тег | |||
</DOC_IN> | ||||
</DOC> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <DOC> <DOC_IN> <!-- ТЕГ прихода--> <NUMBER>11111111</NUMBER> <!-- номер прихода --> <ID_DOC>b542c497-2310-11dd-8e3b-000423dc1d39</ID_DOC> <!--уникальный идентификатор другой системы --> <INVOICE>1234567890</INVOICE> <!-- инвойс--> <DOC_OUT_ID>OUT_DOC</DOC_OUT_ID> <!-- заказ--> <DATE>2019-05-01T15:30:00</DATE> <!-- дата и время прихода в формате 'yyyy-mm-ddThh24:mi:ss'--> <IN_DATE>2019-05-01T15:00:00</IN_DATE> <!-- планируемая дата и время прихода в формате 'yyyy-mm-ddThh24:mi:ss' --> <INV_DATE>2005-05-01</INV_DATE> <!-- дата инвойс в формате 'yyyy-mm-dd'--> <RESPONS_PERS>Иванов В.В.</RESPONS_PERS> <!-- ответственное лицо--> <CAR_NUMBER>о111вв77</CAR_NUMBER> <!-- номер машины--> <PALL>1</PALL> <!-- признаки груза (1 - на паллетах, 0 - нет)--> <EXTERNAL_FILE>..\..\FILES\FOTO.JPG</EXTERNAL_FILE> <!-- ссылка на внешний файл--> <TYPE>1</TYPE> <!-- тип поставки 1-приход; 2-возврат; 3-неофактуренный приход--> <DSC>Очень нужный товар </DSC> <!--- примечание к приходу--> <CUSTOMER_ID>34234234234</CUSTOMER_ID> <!-- идентификатор поставщика--> <CUSTOMER>ООО "Магазин №12"</CUSTOMER> <!-- поставщик--> <CUST_ADDRESS>г.Покров, ул.Ленина 12</CUST_ADDRESS> <!-- адрес поставщика--> <URGENT>1</URGENT> <!-- срочность --> <CONTENT> <!-- состав прихода--> <CODE CODE_ID="5858756875785"> <!-- код товара--> <I_NOM_ID>18374ddd-3328278-442dfd2d-22edd2v</I_NOM_ID> <!--идентификатор товара--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <CNT>10</CNT> <!-- количество--> <ST_PART> <!-- партия--> <PART_NUM>F12345</PART_NUM> <!-- номер партии--> </ST_PART> <!-- партия--> <DSC>Description: Швабра обычная 700мм</DSC> <NOM_SUB_TYP>0</NOM_SUB_TYP> <!-- градация кондиции и брака- словарь №496 --> <EXPIRE_DATE>2020-12-23</EXPIRE_DATE> <!-- срок годности до--> <PROD_DATE>2018-01-21</PROD_DATE> <!-- дата производства--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> <PRICE>200</PRICE> <!-- закупочная стоимость товара во внетренней валюте--> </CODE> <!-- код товара--> <CODE CODE_ID="5858756875785"> <I_NOM_ID>48374d2d-5628278-46d5fd2d-25edd2v</I_NOM_ID> <!--идентификатор товара--> <UNIT_NAME>шт</UNIT_NAME> <!--сокращение ед учета (термин словаря №354, R_N ссылается на код из словаря №362)--> <CNT>102</CNT> <ST_PART> <!-- партия--> <PART_NUM>F12345</PART_NUM> <!-- номер партии--> </ST_PART> <!-- партия--> <DSC>Description: Швабра обычная 800мм</DSC> <NOM_SUB_TYP>0</NOM_SUB_TYP> <!-- градация кондиции и брака- словарь №496 --> <EXPIRE_DATE>2022-03-22</EXPIRE_DATE> <!-- срок годности до--> <PROD_DATE>2019-06-08</PROD_DATE> <!-- дата производства--> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3)--> <PRICE>200</PRICE> <!-- закупочная стоимость товара во внутренней валюте--> </CODE> </CONTENT> <!-- состав прихода--> <EXT_PARAMS> <PARAM> <PARAM_NAME> </PARAM_NAME> - Наименование доп. параметра <PARAM_VALUE> </PARAM_VALUE> - Значение доп. параметра <PARAM_CAPTION> </PARAM_CAPTION> </PARAM> </DOC_IN> </DOC>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
status или DefaultDocStatus |
p2 | Статус загружаемого документа (1- черновик) | Да | |
store_n | p3 | Номер склада, должен быть согласован с типом док-та. | Да | |
file | p4 | Маска для файла, напр, =D:\PI\DICT\IN\*.xml. | Да | |
DOC_TYP_1 DOC_TYP_2 ... |
p5_1 p5_2 ... |
DOC_TYP_xxx=YYY - документ во внешней системе имеет тип xxx, такой тип указан в файле, в CWMS имеет тип YYY | Да | |
UTF | p7 | (строка) если непустой параметр- осуществляется перекодировка из UTF-8(' ') | Да | |
debug | p14 | режим отладки | Нет | 0 |
LoadedNotSeparate | p15 | Разделять ли по папкам(0 - не разделять) | Нет | 0 |
anchors | p16 | Якоря. Не исп | Нет | 0 |
UpdatableStatuses | p17 | В каких статусах можно перезаливать приход (в статусе 1- всегда можно, 0- все статусы). Попытка перезалить документ в статусе не из списка и не 1- ошибка | Нет | 0 |
CheckContent | p19 | Число (0/1),по ум. 0. Проверка состава, если 1- нельзя загружать накладные с пустым составом | Нет | 0 |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
< DOC_CLAIM> | ||||
<NUMBER> </NUMBER> |
Номер акта претензии | Да | string | |
<ID_DOC> </ID_DOC> |
Уникальный идентификатор другой системы | Да | string | |
<DATE> </DATE> |
Дата и время получения претензии | Нет | string | в формате 'dd.mm.yyyy hh24:mi:ss' |
<TYPE> </TYPE> |
Тип претензии | Нет | int | 1-приход; 2-возврат; 3-неофактур. приход |
<AMOUNT> </AMOUNT> |
Размер претенции выраженный в деньгах | Нет | double | |
<STATUS> </STATUS> |
Статус претензии | Нет | int | |
<DSC> </DSC> |
Описание / примечание | Нет | string | |
<CONTENTS> | ||||
<CONTENT> | ||||
<ACCEPT> </ACCEPT> |
Данные о принятии претензии | Да | int | 0 – не принят, 1 - принят |
<CODE> </CODE> |
Код номенклатуры | Да | string | |
<CNT_DOC></CNT_DOC> | Количество, указанное в документе | Да | double | |
<NOM_TYP_DOC> </NOM_TYP_DOC> |
Единица измерения, указанная в документе | Да | int | термин словаря №363, R_N ссылается на код из словаря №362 |
<CNT_CLIENT> </CNT_CLIENT> |
Количество, полученное клиентом | Да | double | |
<NOM_TYP_CLIENT> </NOM_TYP_CLIENT> |
Единица измерения, полученная клиентом | Нет | int | термин словаря №363, R_N ссылается на код из словаря №362 |
<EMPLOYEE_ERR> </EMPLOYEE_ERR> |
Сотрудник | Нет | string | Только во флешбеках. |
<NOM_UNIT> </NOM_UNIT> |
Единица учета | Нет | integer | Термин из словаря №362 |
<DSC> </DSC> |
Описание / примечание | Нет | string | |
</CONTENT> | ||||
</CONTENTS> | ||||
<LINKED_DOCS> | Связные документы | |||
<DOC> | ||||
<NUMBER> </NUMBER> |
Порядковый номер документа в претензии | Да | string | |
<ID_DOC> </ID_DOC> |
Номер связного документа | Да | string | |
<DOC_TYP> </DOC_TYP> |
Тип связного документа | Да | int | Код и словаря №416 |
</DOC> | ||||
</LINKED_DOCS> | ||||
</DOC_CLAIM> |
<?xml version="1.0" encoding="Windows-1251"?> <DOC_CLAIM> <NUMBER>Внутренний_номер</NUMBER> <ID_DOC>внешний_номер</ID_DOC> <DATE>01.01.1990</DATE> <TYPE>5</TYPE> <!--тип претензии --> <AMOUNT>1</AMOUNT> <STATUS>1</STATUS> <DSC>Описание_претензии</DSC> <CONTENTS> <CONTENT> <ACCEPT>1</ACCEPT> <CODE>Номенклатура_01</CODE> <CNT_DOC>1</CNT_DOC> <NOM_TYP_DOC>1</NOM_TYP_DOC> <CNT_CLIENT>1</CNT_CLIENT> <NOM_TYP_CLIENT>1</NOM_TYP_CLIENT> <EMPLOYEE_ERR>Текст_ошибки</EMPLOYEE_ERR> <DSC>Описание</DSC> <NOM_UNIT>1</NOM_UNIT> </CONTENT> </CONTENTS> <LINKED_DOCS> <DOC> <NUMBER>Связанный_документ</NUMBER> <ID_DOC>Связанный_документ_внешнее_имя</ID_DOC> <DOC_TYPE>1</DOC_TYPE> <!--тип документа --> </DOC> </LINKED_DOCS> </DOC_CLAIM>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
file | p3 | Маска для файла, напр, =D:\PI\DICT\IN\*.xml | Да | |
UTF | p4 | Если не пустой- файл в кодировке UTF-8. | Да | |
DOC_TYP_1 DOC_TYP_2 ... |
p5_1 p5_2 ... |
DOC_TYP_xxx=YYY - документ во внешней системе имеет тип xxx, такой тип указан в файле, в CWMS имеет тип YYY. Список типов- словарь 316 | Да | |
DefaultDocStatus | p8 | Статус претензии по умолчанию, используется, если не указан в файле | Нет | 0 |
DefaultDocType | p9 | Документ получает такой тип, если тип не указан или не может быть определен | Нет | 0 |
debug | p14 | Статус претензии по умолчанию, используется, если не указан в файле | Нет | 0 |
debugEx | p14ex | Расширенный режим отладки | Нет | 0 |
IgnoreNom | p18 | Игнорировать неизвестную ном. Иначе- ошибка | Нет | 0 |
ТЕРМИНАЛЫ СБОРА ДАННЫХ - специализированные портативные устройства (КПК), представляющие собой компьютер со встроенным сканером штрих-кода, предназначенные для быстрого сбора информации о товарах и передачи их в информационную систему БД, через выделенный канал радио-связи.
Инструкция по заливке терминала сбора данных Symbol
Для заливки образов на терминалы сбора данных на компьютере пользователя должны быть установлены следующее программное обеспечение: - Microsoft Visual SourceSafe (далее по тексту - VSS) - Microsoft ActiveSinc
Должен быть подключен кредл для терминалов сбора данных компании Symbol
По указанному в окне на рис.1 пути выгрузится файл образ для данного терминала
Начало файла ------
st --имя пользователя
st --пароль
store --имя базы данных oracle
192.168.9.1 --ip-адрес сервера базы данных
1521 --порт сервера базы данных
5 --размер шрифта (необязательный параметр)
color --признак необходимости регулировки цвета (необязательный параметр)
--при наличии параметра color (предыдущая строка) цвет фона (необязательный параметр)
--при наличии параметра color цвет текста (необязательный параметр)
Конец файла ------
Примечание! Если параметр color присутствует в файле, но при этом отсутствуют параметры цвета и фона - цвет изменится на контрастный чёрно-белый (для чёрно-белых ТСД)
Для работы обязательно требуется установленный NET Framework версии 4.0 и выше.
Скачивание сервиса
1) Запросить архив AndroidServ в отделе Технической поддержки.
2) После чего разархивировать.
Запуск в режиме приложения
Для работы сервиса Android необходимо установить Java 8 update 241.
Скачать можно по данной ссылке https://java.com/ru/download/
1) После установки Java, открываем на редактирование файл DB. properties
2) Меняем параметры конфига.
• db_user = * (За место , указываем логин от БД)
• db_pwd = (За место , указываем пароль от БД)
• db_server_url = jdbc:oracle:thin:@//000.000.000.000:1521/**
000.000.000.000 – изменяем на IP адрес БД
*** - меняем на название инстанса БД
3) Открываем на редактирование файл run.cmd
4) Редактируем
C:\Users\Admin\Desktop\mcis – меняем путь до файла MCISServer.jar
5) Запускаем run.cmd от имени администратора
Сервис запущен.
Available connections – показывает сколько подключено терминалов.
Создание службы Windows
1) Открываем на редактирование файл WinSW.NET4.xml
2) Изменяем конфиг
• <id>CWMS3000AndroidServ</id> - уникальный id службы
• <name>CWMS3000AndroidServ (powered by WinSW)</name> - отображаемое имя в службах
• <description>run android service for TSD</description> - описание службы
• <executable>java</executable> - чем запускать, всегда Java
• <arguments>-jar MCISServer.jar DB.properties</arguments> - скрипт запуска
3) Выполняем в cmd скрипт для создания службы
Sc create CWMS3000AndroidServ binPath= C:\MyService\MyService.exe DisplayName= ″CWMS3000AndroidServ″ type= own start= auto
После create идёт:
• CWMS3000AndroidServ – ID из конфига
• binPath – путь до файла WinSW.NET4.exe
• DisplayName – имя из конфига
4) Служба успешно созданна
5) Открываем службы
6) Ищем нами созданную службу
7) Открываем её свойства и переходим во вкладку «Вход в систему»
8) Авторизовываемся под учётной записью с правами администратора, поставив галочку и задав верные данные от неё
9) После чего запуска службу.
Первое, что необходимо проверитm, путь до java
which java
Создаем и устанавливаем новую в папку ( версия jdk-11.0.14)
mkdir /usr/lib/jvm/jdk-11.0.14
Разархивируем java в папку где:
/home/oracle/Downloads/jdk-11.0.14_linux-x64_bin.tar.gz - путь до архива(любой ваш)
/usr/lib/jvm/ - путь куда разархивируем
tar -xf /home/oracle/Downloads/jdk-11.0.14_linux-x64_bin.tar.gz -C /usr/lib/jvm
Проверяем что там она есть
ls -la /usr/lib/jvm/jdk-11.0.14
Устанавливаем алтернативную версию JAVA, выполняя скрипты по очереди
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk-11.0.14/bin/java" 0
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk-11.0.14/bin/javac" 0
sudo update-alternatives --set java /usr/lib/jvm/jdk-11.0.14/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/jdk-11.0.14/bin/javac
Прописываем пути в environment соблюдаем правильность путей до версии java (jdk-11.0.14)
Открываем его
nano /etc/environment
Прописываем туда
:/usr/lib/jvm/jdk-11.0.14/bin:/usr/lib/jvm/jdk-11.0.14/db/bin:/usr/lib/jvm/jdk-11.0.14/jre/bin J2SDKDIR="/usr/lib/jvm/jdk-11.0.14" J2REDIR="/usr/lib/jvm/jdk-11.0.14/jre" JAVA_HOME="/usr/lib/jvm/jdk-11.0.14" DERBY_HOME="/usr/lib/jvm/jdk-11.0.14/db"
После необходимо сделать перезапуск окружения
exec $SHELL
Проверяем какая верся java теперь является по умолчанию
java -version
В нашем случае будет следующий ответ
java version "11.0.14" 2022-01-18 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.14+8-LTS-263) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.14+8-LTS-263, mixed mode)
h3. Подготовка сервера-андройд
Создаем папку под файлы сервиса
mkdir -p /opt/mcis/data
В папку /opt/mcis положить mcis-mobile-service_0.0.10-WOL.jar (джарник сервера-андройд)
В папку /opt/mcis/data полоджить client_keystore.p12 (лицензии)
Переходим в папку с JAR'ником
cd /opt/mcis
И проверяем на запуск наш сервис
(Заполнив параметры без "")
java \ -jar mcis-mobile-service_0.0.10-WOL.jar \ --spring.datasource.url=jdbc:oracle:thin:@"IPбазы данных":"порт базы данных":"имя инстанса" \ --spring.datasource.username="название схемы" \ --spring.datasource.password="пароль схемы" \ --server.port="порт на котором будет работать андройд-сервер" \ --app.session.timeout=900000 \ --app.session.max-sessions="Кол-во мобильных лицензий клиента" \ --app.session.exit=3000000
Должно ответить что запустилось на порту указанном в конфиге
o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): Указанный порт андройд-сервера
h4. SUPERVISORD
Создаем папку конфигов
mkdir -p /etc/supervisor/conf.d
Редактируем файл конфига
nano /etc/supervisord.conf
В самом конце раздел с ссылкой на файлы конфига
[include] files = /etc/supervisor/conf.d/*.conf
Создаем свой конфиг
nano /etc/supervisor/conf.d/wms.conf
Туда пишем следующее
[program:android] # Рабочая папка directory=/opt/mcis #Пути до java если их несколько, и java не ниже 11 environment=PATH="/opt/mcis/:/usr/lib/jvm/jdk-11.0.14/bin/",JAVA_HOME="/usr/lib/jvm/jdk-11.0.14" #Команда запуска #Если многострочная, то вторая и далее строка начинается с TAB #Заполнить параметры без "" command=java -jar mcis-mobile-service_0.0.10-WOL.jar --spring.datasource.url=jdbc:oracle:thin:@"IPбазы данных":"порт базы данных":"имя инстанса" --spring.datasource.username="название схемы" --spring.datasource.password="пароль схемы" --server.port="порт на котором будет работать андройд-сервер" --app.session.timeout=900000 --app.session.max-sessions=5 --app.session.exit=3000000 #Файлы логов stdout_logfile=/opt/mcis/andr.out.log stderr_logfile=/opt/mcis/andr.err.log stdout_logfile_maxbytes=5MB autostart=true autorestart=true stopsignal=KILL
Перечитать конфигурацию для применения изменений
supervisorctl reread
Перезапустить конфигурацию
supervisorctl update
Проверить статус
supervisorctl status
Проверить что в логе нет ошибок
tail -f -n 190 /opt/mcis/andr.out.log
[Ссылка на файлы](https://rm.cwms3000.ru/projects/cwms3000/wiki/Oracle)
Инструкция по первоначальному вводу в эксплуатацию терминала сбора данных Symbol
Для ввода в эксплуатацию терминала сбора данных на компьютере пользователя должны быть установлены следующее программное обеспечение: - Microsoft Visual SourceSafe (далее по тексту - VSS) - Microsoft NETCompactFrameWork v. 1
Должен быть подключен кредл для терминалов сбора данных компании Symbol
1. Вставляем терминал в кредл. И ждем когда Windows обнаружит его при помощи программы Microsoft ActiveSync и выдаст окно
Выбираем Guest partnership и нажимаем далее >
2. Устанавливаем NETCF, кликнем на установщике в среде Windows. Следуем, указаниям установщика везде жмем ок и next
3. Переводим взгляд на терминала сбора данных там видим приглашение на установку там аналогично следуем, указаниям установщика везде жмем ок и next.
4. Перегружаем терминал сбора данных.
5. Устанавливаем коннект с терминалом сбора данных (см. шаг 1)
6. Копируем из папки FS все файлы на терминал по пути \Windows\Programs\
7. Далее, на терминале сбора данных запускаем утилиту \Windows\regmerge на сообщение системы (на терминале сбора данных) говорим Да. Перегружаем терминал.
8. Устанавливаем коннект с терминалом сбора данных (см. шаг 1)
9. Берем утилиту AppCenter.exe копируем на терминал сбора данных в директорию \Windows\StartUP
10. Находим файл на терминале сбора данных \Windows\Programs\PlatMC3000.reg кликаем на нем дава раза отвечаем да на вопрос системы тоже самое проделываем с \Windows\Programs\AppCenter.reg
11. Присваиваем терминалу сбора данных уникальный идентификатор
12. На терминале сбора данных в сетевых настройках добавляем SID 101, необязательно что бы Сид был виден и присваиваем WI-FI интерфейсу IP
10.10.10.(идентификатор присвоенный терминалу) IP адрес
255.255.255.0 маска
10.10.10.254 шлюз
13. Перегружаем терминал
14. Делаем образ резервной копии с терминала(на терминале выключаем оболочку и все программы) посредством утилиты ActiveSync называем образ в формате MCISMC3000_(номер терминала).STG, заливаем образ в SourceSafe в ветку Symbol.
Инструкция по первоначальному вводу в эксплуатацию терминала сбора данных Symbol
Для ввода в эксплуатацию терминала сбора данных на компьютере пользователя должны быть установлены следующее программное обеспечение: - Microsoft Visual SourceSafe (далее по тексту - VSS) - Microsoft NETCompactFrameWork v. 1
Должен быть подключен кредл для терминалов сбора данных компании Symbol
1. Вставляем терминал в кредл. И ждем когда Windows обнаружит его при помощи программы Microsoft ActiveSync и выдаст окно
Выбираем Guest partnership и нажимаем далее >
2. Устанавливаем NETCF, кликнем на установщике в среде Windows. Следуем, указаниям установщика везде жмем ок и next
3. Переводим взгляд на терминала сбора данных там видим приглашение на установку там аналогично следуем, указаниям установщика везде жмем ок и next.
4. Перегружаем терминал сбора данных.
5. Устанавливаем коннект с терминалом сбора данных (см. шаг 1)
6. Копируем из папки FS все файлы на терминал по пути \Windows\Programs\
7. Далее, на терминале сбора данных запускаем утилиту \Windows\regmerge на сообщение системы (на терминале сбора данных) говорим Да. Перегружаем терминал.
8. Устанавливаем коннект с терминалом сбора данных (см. шаг 1)
9. Берем утилиту AppCenter.exe копируем на терминал сбора данных в директорию \Windows\StartUP
10. Находим файл на терминале сбора данных \Windows\Programs\PlatMC3000.reg кликаем на нем дава раза отвечаем да на вопрос системы тоже самое проделываем с \Windows\Programs\AppCenter.reg
11. Присваиваем терминалу сбора данных уникальный идентификатор
12. На терминале сбора данных в сетевых настройках добавляем SID 101, необязательно что бы Сид был виден и присваиваем WI-FI интерфейсу IP
10.10.10.(идентификатор присвоенный терминалу) IP адрес
255.255.255.0 маска
10.10.10.254 шлюз
13. Перегружаем терминал
14. Делаем образ резервной копии с терминала(на терминале выключаем оболочку и все программы) посредством утилиты ActiveSync называем образ в формате MCISMC3000_(номер терминала).STG, заливаем образ в SourceSafe в ветку Symbol.
ТСД:Полное приходование
Приход. 1. В основном меню выбрать пункт 1
2. Отсканировать «Акт приходный документ» или ввести номер вручную
3. Добавить в документ паллету (пункт 1)
4. Отсканировать PID
5. Отсканировать номенклатуру или ввести 0 для последующей приемки по EAN UCC
6. Ввести количество
7. Выбрать известную дату 1-Срок годности, 9-Дата производства, 0-Без ограничения срока
8. Ввести дату в формате ДДММГГ
9. Выбрать состояние, 1- Кондиция, 3-Брак
10. Подтвердить введенный паллет или добавить на паллет еще и повторить пункты 4-10
Поштучная приемка
1. Для поштучной приемки выберите пункт «1»
2. Сканируйте штрихкод из шапки «Акт приходный документ» или выберите с помощью 0 приходный документ с наибольшим приоритетом
3. Для поштучной приемки выберите пункт «3»
4. Сканируйте PID, в который осуществляется прием товара
5. Выберите состояние товара: 1-кондиция, 3- брак
6. Введите количество данной номенклатуры и сканируйте штрихкорд, если не введено количество по умолчанию будет посчитана 1 единица товара
7. Система отображает последнюю введенную номенклатуру и процент заполняемости короба, согласно паллетизации. Повторите пункт 6. Для смены короба нажмите «027» или просканируйте новый PID
Способ зарядки аккумулятора в коммуникационной подставке. Убедитесь в том, что перезаряжаемый аккумулятор OPTICON (Ni-Mn) находиться в терминале. Если аккумулятор правильно вставлен в терминал, то при установке его на подставку загорится зеленый светодиод. Время зарядки аккумулятора – 8 часов. Если в терминале находятся пальчиковые батарейки или другие пальчиковые аккумуляторы, то зарядка через подставку производиться не будет, а так же не будет индикации на подставке.
Когда заменять или заряжать основной аккумулятор Когда на индикаторе терминала появляется знак разрядки аккумулятора необходимо произвести зарядку или замену аккумулятора. Если в терминале находится достаточно заряженная резервная батарея, данные в момент переустановки аккумулятора не теряются.
Когда заменять резервную батарею Когда появляется знак разрядки резервной батареи, немедленно замените батарею. Для того, что- бы не потерять данные из памяти терминала, убедитесь, что основная батарея находится в терминале и не разряжена.
Терминалы сбора данных - это специализированные портативные устройства (КПК), представляющие собой компьютер встроенным сканером штрих-кода предназначенные для быстрого сбора информации о товарах и передачи их в информационную систему (центральную базу данных) через определенный канал связи (Инфракрасный порт, радиоканал, проводные соединения и др).
Обычный терминал сбора данных (ТСД) представляет собой мобильный миникомпьютер с интегрированным встроенным лазерным или ПЗС сканером для считывания штрихового кода, имеет процессор, память, клавиатуру, дисплей и может работать в автономном режиме. Во время работы с ТСД оператор, свободно перемещаясь по торговому залу или складу, считывает штриховые коды товаров, либо накапливая результат в памяти своего переносного устройства, либо тут же передавая их в центральную систему по радиоканалу. К компьютеру терминал может подключаться разными способами. Обычно это специальная подставка, подключенная к последовательному порту компьютера, которая служит одновременно и зарядным устройством для аккумуляторов, установленных в терминале. Так же возможно подключение через инфракрасный порт или специальный кабель.
При приемке товаров в базу программы сбора данных терминала записывается информация, содержащаяся в штрих-коде товара (паллеты), и вводится количество товара (впрочем, конкретная методика сбора информации может меняться в зависимости от требований предприятия). Остальные действия по обработке информации обусловлены применяемой складской программой. При отгрузке товара со склада в память терминала сбора данных загружается накладная на отгрузку, и комплектование заказа осуществляется с помощью подсказок терминала, что практически исключает ошибки в работе персонала. Наконец, при инвентаризации сканирование штрих-кодов товаров и последующий ввод их количества позволяют программе складского учета сформировать инвентаризационную ведомость.
Подготовка резервного сервера
hint: Для удобства навигации между RDP-подключениями основного и резервного серверов, рекомендуется установить в качестве "обоев" рабочего стола резервного сервера ярко-красный фон.
Установка СУБД oracle и создание резервной БД.
Запускаем инсталлятор, выбираем метод установки - advanced, нажимаем "next"
тип установки - Enterprise, нажимаем "next"
В следующем окне - Name оставляем по умолчанию, Path должен быть идентичен пути установки БД на основном сервере
В пунктах, имеющих статус "error", проставляем галочки.
Статус должен поменять на " user verified", нажимаем "next"
В следующем окне выбираем "Create a Database", нажимаем "next".
В следующем окне выбираем Advanced, жмем "next".
В следующем окне оставляем значения по умолчанию, жмем "next".
В следующем окне проверяем правильность введённых параметров и нажимаем "Install"
После окончания установки автоматически откроется Database Configuration Assistant. В первом окне выбираем General Purpose, нажимаем "next".
В следующем окне вводим Global Database и SID. Они должны быть ИДЕНТИЧНЫ основной базе.
В следующем окне оставляем всё без изменения.
В следующем окне вводим пароль для системных учётных записей oracle. Он должен быть ИДЕНТИЧЕН паролю на основной базе. Нажимаем "next".
В следующем окне оставляем все данные без изменения, нажимаем "next".
В следующем окне снимаем галочку "Specify Flash Recovery Area", ставим галочку "Enable Archiving, нажимаем кнопку Edit Archive Mode Parameters
Standby15.JPG
В открывшемся окне указываем ПОЛНЫЙ путь к папке с архивными логами. Путь должен быть идентичен пути к папке на основном сервере. Если папки для архивных логов на резервном сервере не существует - её необходимо создать. Имя папки и её местонахождение на локальном диске должны быть полностью идентичными имени и местонахождению на основном сервере. Нажимаем "ok" и "next".
В следующем окне снимаем галочку "Sample Schemas", нажимаем "next"
В следующем окне ставим флаги Custom и Manual.
Единицы измерения ВЕЗДЕ проставляем M Bytes. Рекомендуемые значения:
Shared Pool: 128 M Bytes
Buffer Cache: Указываем размер, исходя из оставшейся свободной оперативной памяти, за вычетом памяти, необходимой для корректной работы операционной системы. Для резервного сервера, имеющего 4 Гб оперативной памяти (как на скриншоте), оптимальным размером Buffer Cache будет 2 Гб, для сервера, имеющего, например, 32 Гб оперативной памяти, оптимальным будет 25 Гб.
Java Pool: 128 M Bytes
Large Pool: 512 M Bytes
PGA Size: 256 M Bytes
Далее на вкладке Character Sets устанавливаем флаг "Choose from the list of character sets", Утанавливаем параметры, согласно скриншоту. Нажимаем кнопку "next".
В следующем окне оставляем все значения по умолчанию и нажимаем next.
В следующем окне оставляем все значения по умолчанию и нажимаем Готово.
В процессе создания БД и применения настроек, может появиться ошибка старта БД. Не пугаемся, нажимаем ОК.
По завершению установки, нажимаем next, в следующем окне - exit.
Далее заходим в диспетчер служб, проверяем, чтобы службы oracle были созданы, и их состояние было как на скриншоте.
Запускаем командную строку, вводим команду sqlplus. Логин sys as sysdba, пароль - указанный при установке. Если все вышеописанные действия были проведены верно - мы увидим информацию о версии СУБД и строку ввода команд SQL.
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для резервного сервера это bwms. Для этого вводим команду:
alter system set db_unique_name='bwms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Останавливаем БД. Для этого вводим команду
shutdown immediate
Удаляем все файлы из каталога БД
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса
WMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WMS)
)
)
BWMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
wms_XPT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
wms_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
wms_DGMGRL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
)
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным
Стартуем службу OracleOraDb10g_home1TNSListener
Подготовка основного сервера
На основном сервере запускаем sqlplus, логин sys as sysdba
Вводим команду
ALTER DATABASE FORCE LOGGING;
Создаём REDO логи, которые в последствии будет использовать резервный сервер. Для этого вводим команду, где указываем путь к папке с ораклом:
ALTER DATABASE ADD STANDBY LOGFILE GROUP 10 ('P:\oracle\product\10.2.0\oradata\VPI\log1c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log2c.rdo','P:\oracle\product\10.2.0\oradata\VPI\log3c.rdo') SIZE 50M;
Прописываем уникальное имя базы, по которому data guard broker будет её идентифицировать, для основного сервера это wms. Для этого вводим команду:
alter system set db_unique_name='wms' scope=spfile;
Включаем data guard broker. Для этого вводим команду:
alter system st dg_broker_start=true scope=both;
Останавливаем службу OracleOraDb10g_home1TNSListener
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora согласно тексту ниже, указываем реальные ip-адреса
WMS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес основного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = wms)
)
)
bwms =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_XPT =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_DGB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
bwms_DGMGRL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ip-адрес резервного сервера)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bwms)
)
)
)
Редактируем файл E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
Значения, которые необходимо изменить выделены красным
Стартуем службу OracleOraDb10g_home1TNSListener
Принудительно создаём логи, чтобы в них записались последние транзакции. Для этого вводим команду:
alter system switch logfile; Для надежности - три раза, и СРАЗУ ЖЕ останавливаем базу командой:
shutdown immediate
Стартуем базу в режиме mount. Для этого вводим команду:
startup mount
Создаём контрол-файл для резервного сервера. Для этого вводим команду:
ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'C:\boston.ctl'
Дважды клонируем полученный файл и переименовываем его.
В результате из файла boston.ctl' должно получиться 3 идентичных файла: CONTROL01.CTL, CONTROL02.CTL, CONTROL01.CTL.
Они нам пригодятся чуть позже.
Останавливаем БД. Для этого вводим команду:
shutdown immediate
Останавливаем службу OracleService
Копируем всё содержимое папки E:\oracle\product\10.2.0\oradata\Имя_Инстанса КРОМЕ ФАЙЛОВ С РАСШИРЕНИЕМ .CTL в аналогичную папку резервного сервера.
Далее в ту же папку РЕЗЕРВНОГО сервера копируем контрол-файлы, полученные в результате создания и клонирования файла boston.ctl (см. выше)
Запускаем службу OracleService
Подготовка основной БД закончена, можно продолжать работу в ней в штатном режиме.
Создание и настройка конфигурации data guard broker
Запускаем БД на РЕЗЕРВНОМ сервере. Для этого вводим команду:
startup
По результатам выполнения :
создана резервная база
создан слепок основной базы и перенесен на резервный сервер
резервная база запущена и имеет точную копию основной
Далее нам необходимо проверить связь между серверами в рамках алиасов. Для этого на ОСНОВНОМ СЕРВЕРЕ открываем командную строку и вводим команду:
tnsping bwms
результатом команды должен быть отчет об успешном прохождении пинга.
Создаём конфигурацию, добавляем в конфигурацию наши базы, устанавливаем свойства, благодаря которым при добавлении файлов в основную базу, они автоматически будут создаваться на резервной.
Для этого выполняем скрипт:
CREATE CONFIGURATION 'SID БД_BACKUP' AS
PRIMARY DATABASE IS 'wms'
CONNECT IDENTIFIER IS wms;
ADD DATABASE 'bwms' AS
CONNECT IDENTIFIER IS bwms
MAINTAINED AS PHYSICAL;
EDIT DATABASE 'bwms' SET PROPERTY 'StandbyFileManagement'='AUTO';
EDIT DATABASE 'wms' SET PROPERTY 'StandbyFileManagement'='AUTO';
Для того, чтобы убедиться в том, что конфигурация успешно создалась, вводим команду:
show configuration
Далее включаем конфигурацию, вводим команду:
enable configuration
После этого начнется процесс копирования логов с основного сервера на резервный и их применение. Процесс может занимать различное время, в зависимости от того, насколько основная база "убежала вперед" от резервной, после её включения (окончание П.2).
Проверяем валидность конфигурации командой:
show configuration
При успешной синхронизации серверов команда должна возвратить "SUCCESS"
Далее смотрим очередь на применение логов к резервной базе(она должна быть пустая), для этого вводим команду:
SHOW DATABASE 'bwms' 'RecvQEntries';
И очередь на передачу логов с основного сервера(должно быть одно значение):
SHOW DATABASE 'wms' 'SendQEntries'
Запросить архив с файлами в отделе Технической поддержки
Настройка CWMS на терминале Windows
1) Загрузка компонента на терминал
Перекидываем компонент на терминал и проверяем подключение к сети на терминале.
2) Изменение config.txt
Редактируем config.txt. Все данные, которые на скриншоте нужно поменять на свои
tst – логин БД
st – пароль БД
tst – строка соединения БД
192.168.1.254 – ip адрес БД
1521 – порт по умолчанию
12 – размер шрифта, по умолчанию 15
3) Запускаем на терминале mCIS.exe и авторизовываемся.
Для настройки автоматического запуска нам понадобится программа AppCenter. (можете скачать ее из интернета, или перенести с других терминалов, где она есть)
Помещаем файл AppCenter.exe в папку Windows/StartUp. Так же в эту папку скопируйте файл mCIS.exe из корневой папки. Лишнее из папки можете удалить.
Затем запускаем AppCenter. Логинимся: Tools -Login, в появившимся окне вводим "Symbol".
Добавляем новое приложение, в представленном списке выбираем mCIS.exe.
Откроется диалоговое окно:
проверьте путь к приложению, он должен совпадать с путем расположения mCIS.exe на терминале.
ставим галочку AutoStart, задержку можете выставить на свое усмотрение.
---
1) Запросить архив с файлами в отделе Технической поддержки
2) Необходимо установить компонент NETCFv35.Messages.EN
3) Так же необходимо установить компонент DataWedge
4) После установки необходимо зайти:
• Program Files
• DataWedge
• Запускаем DataWedge
5) После запуска, необходимо зайти в настройки DataWedge
6) Заходим в Basic configuration
7) Выбираем Basic format
8) Необходимо:
• Enabled - галочка
• Prefix to data – выставить !
• Suffix to data – выставить ?
• Send data – галочка
• Send ENTER key – галочка!10.jpg!
После чего необходимо нажать Back для сохранения.
9) После настройки необходимо зайти
• Application
• mCIS_DW_17 new
10) Изменяем config на свои параметры
11) После запускаем программу mCis_DW_17
12) Вводим пароль сотрудника после чего сканируем баркод.
Для настройки автоматического запуска нам понадобится программа AppCenter. (можете скачать ее из интернета, или перенести с других терминалов, где она есть)
Помещаем файл AppCenter.exe в папку Windows/StartUp. Так же в эту папку скопируйте файлы mCIS.exe и DataWedge.exe из их корневых папок. Лишнее из папки можете удалить.
Затем запускаем AppCenter. Логинимся: Tools -Login, в появившимся окне вводим "Symbol".
Добавляем новое приложение, в представленном списке выбираем mCIS.exe.
Откроется диалоговое окно:
проверьте путь к приложению, он должен совпадать с путем расположения mCIS.exe на терминале.
ставим галочку AutoStart, задержку можете выставить на свое усмотрение.
По такому же принципу добавляем DataWedge.
Для настройки ежедневного оповещение на почту о работоспособности сервера стендбай, необходимо настроить файл SendDGMGRL.vbs
1. В операционной системе настроить "планировщик заданий", создать задачу на ежедневное исполнение файла SendDGMGRL.vbs
2. Открыть на редактирование SendDGMGRL.vbs любым текстовым редактором, в шапке настроить параметры оповещения:
const Cons_Path = "C:\temp\usr" ' Путь к папке
const SMTP_Host = "smtp.nc.ru" 'Адрес SMTP-сервера
const DB_Connection = "sys/*****@DBNAME" 'Параметры подкл. к БД
const SMTP_Subj = "Отчет dgmgrl" ' Тема сообщения
const SMTP_Port = 25 ' Порт SMTP
const SMTP_Name = "cwms3000" ' Логин для отправки
const SMTP_Password = "*****" ' Пароль для отправки
const SMTP_From = "userfrom@post.ru" ' Адрес отправителя
const SMTP_To = notify@cwms3000.ru" ' Адрес получателя
3. Указанным получателем на почту ежедневно высылается отчет в виде:
Subject: Отчет dgmgrl от 26.05.2014 9:30:02
DGMGRL for 32-bit Windows: Version 10.2.0.1.0 - Production
Copyright (c) 2000, 2005, Oracle. All rights reserved.
Добро пожаловать DGMGRL, для получения информации наберите "help".
DGMGRL> Соединение установлено.
DGMGRL> PRIMARY_SEND_QUEUE
STANDBY_NAME STATUS RESETLOGS_ID THREAD
LOG_SEQ TIME_GENERATED TIME_COMPLETED FIRST_CHANGE# NEXT_CHANGE# SIZE (KBs)
CURRENT 601448867
46273 05/26/2014 09:32:13 956587057 13274 DGMGRL> STANDBY_RECEIVE_QUEUE
STATUS RESETLOGS_ID THREAD LOG_SEQ
TIME_GENERATED TIME_COMPLETED FIRST_CHANGE# NEXT_CHANGE# SIZE (KBs) DGMGRL> Configuration
Name: DKN_BACKUP
Enabled: YES
Protection Mode: MaxPerformance
Fast-Start Failover: DISABLED
Databases:
wms - Primary database
bwms - Physical standby database
Текущее состояние для "DKN_BACKUP": SUCCESS
При получении уведомления на почту, необходимо обратить внимание на очередь заданий, выделено красным, при наличие 5 и более невыполненных заданий, обратиться в ОТП. Также необходимо обратить внимание на последние строки, описывающие состояние конфигурации(Текущее состояние для "DKN_BACKUP": SUCCESS). Если не success, значит есть проблемы в самой конфигурции.
Первая очередь (PRIMARY_SEND_QUEUE) - не отправленные архивные логи с основного сервера на резервный. Вторая (STANDBY_RECEIVE_QUEUE) - отправленные, но не применённые логи на резервном сервере. Т.е. если первая очередь большая, значит проблемы в транспорте. Если большая вторая очередь - проблема с резервным сервером. В нашем примере мы видим, что в очереди на отправку один архивный лог, в очереди на применение логов нет.
Создать файл SendDGMGRL.vbs следующего содержания
'----- Константы: которые нужно задать ----------
const SMTP_Host = "mail.server.ru" ' Адрес SMTP-сервера
const DB_Connection = "sys/pasword@instance" 'Строка соединения с БД
const SMTP_Subj = "Отчет dgmgrl" ' Тема сообщения
const SMTP_Port = 25 ' Порт SMTP
const SMTP_Name = "smtp_user" ' Логин для отправки
const SMTP_Password = "pswd" ' Пароль для отправки
const SMTP_From = "user@server.ru" ' Адрес отправителя
const SMTP_To = "notify@cwms3000.ru" ' Адрес получателя
const WaitCyclesCnt = 300 ' Задержка в секундах на ожидание вывода
'------------------------------------------------
const cdoSendUsingPort = 2
Const cdoBasic = 1
dim fso, fn, f, ff(), cnt
dim WshShell, oExec, input
set fso=createobject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("dgmgrl")
oExec.StdIn.Write "connect " & DB_Connection
oExec.StdIn.Write VbCrLf
oExec.StdIn.Write "show configuration;"
oExec.StdIn.Write VbCrLf
oExec.StdIn.Write "show database wms sendqentries;"
oExec.StdIn.Write VbCrLf
oExec.StdIn.Write "show database bwms recvqentries;"
oExec.StdIn.Write VbCrLf
oExec.StdIn.Write "exit;"
oExec.StdIn.Write VbCrLf
input = ""
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Do While Not oExec.StdOut.AtEndOfStream
input = input & oExec.StdOut.Read(1)
Loop
'Set f = fso.GetFolder(fso.buildpath(Cons_Path, "attachment")).Files
' Создание списка файлов
'for each fn in f
' if lcase(fso.getextensionname(fn))="txt" then
' AddToArray fn, ff, cnt
' end if
'next
' Отправка письма
SendMessage SMTP_To, SMTP_Subj & " от " & Now, input, ff
' Удаление файлов
'for each fn in ff
' fso.deletefile fn
'next
'----------------
' Отправка электронного письма
sub SendMessage(Recipient, Subj , Text, Attachments)
dim msg,fn
set msg = WScript.CreateObject("CDO.Message")
with msg
.BodyPart.charset = "KOI8-R"
.From = SMTP_From
.To = Recipient
.Subject = Subj
.TextBody = text
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTP_Host
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTP_Port
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = SMTP_Name
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SMTP_Password
.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
.Configuration.Fields.Update
.MimeFormatted = true
for each fn in attachments
.addattachment fn
next
.Send
end with
end sub
'----------------
' Добавление элемента в массив
sub AddToArray(Itm, Arr, Count)
Count = Count + 1
ReDim Preserve Arr(Count-1)
Arr(Count-1) = Itm
end sub
Добавить вызов этого файла в планировщик Windows, настроить интервалы и время запуска
Удаление архивных логов через RMAN
Заходим в командную строку
Пишем rman
connect target sys/password@TST , где TST - имя базы
elete archivelog all;
______________________
y - подтверждение операции.
В определенных случаях требуется переместить паллеты с продукцией на другое место.
Так как каждая паллета строго закреплена в каждой ячейке, для перемещения паллеты требуется составлять акт о перемещении.
При открытии вышеуказанного пункта меню Вы увидите следующее:
В верхней части экрана находится список всех актов о перемещении.
Для того чтобы завести новый акт о перемещении нажмите кнопку Новый. Программа предлагает Вам выбрать из списка контрагентов нужного клиента, чей товар Вы перемещаете.
После этого появляется форма, в которой по необходимости заполните поля.
Если Вы не задаете вручную номер акта, он выставляется системой автоматически.
После этого Вы можете производить перемещения. Для этого нажимаете кнопку Добавить. Перед Вами появится окно:
Выбираем тот товар, который нужно переместить, для этого щелкаем на кнопку … рядом с номенклатурой, перед Вами открывается
где Вы можете осуществить поиск либо номеру товара, либо по его коду, либо по наименованию. Конечно, лучше это делать по коду товара.
Вводите первые 6 цифр в поисковик и нажимаете кнопку искать Поисковик предлагает Вам перечень товаров, которые удовлетворяют Вашему запросу:
Нажимаете кнопочку Выбрать напротив нужного Вам наименования товара.
После этого если Вы знаете, с какого номера ячейки Вам надо переместить товар, то введите атрибуты в соответствующие ячейки (этаж, ряд, ярус, место) и нажимаете кнопку Искать, если же, допустим, Вам не принципиально, с какой ячейки снимать товар, то просто нажимаете кнопку Искать.
Перед Вами выпадет список всех ячеек (одной ячейки) доступных на данный момент. Красным шрифтом помечается брак.
После того как Вы нашли нужную Вам ячейку, Вы помечаете галочкой эту ячейку в графе выбор (Вы можете пометить сразу несколько ячеек) и нажимаете Добавить в выбор.
Выбранные Вами ячейки отображаются в нижней части экрана
В столбик Количество Вы заносите количество товара, которое Вы перемещаете. После этого Вы нажимаете Сохранить.
После сохранения Вы возвращаетесь к форме на рис 1, в нижней части формы появится запись о выбранном Вами товаре.
Для того чтобы разместить этот товар на новое место вы нажимаете новый адрес, вводите в соответственные окна адрес новой ячейки, нажимаете Искать, после того как система найдет эту ячейку и вы убедитесь, что она свободна, нажимаете Выбрать.
Если в данном акте Вы хотите провести еще несколько перемещений, повторите все действия по новой, если нет, то нажмите Сохранить.
А затем переведите статус акта в Подтвержденный. Помните, что пока Ваш акт находится в статусе черновика, то ячейки являются свободными в системе и могут быть заняты другими пользователями.
Используется в составе AC CWMS-3000(complex warehouse management system) для автоматизации процесса переупаковки товара из одних артикулов в другие.
Основная форма рабочего места представляет собой панель навигации и таблицы, содержащие список заказов и их составы.
Для создания новой процедуры переупаковки нажмите . После этого откроются окна с выбором контрагента, выбора типа акта и даты резерва переупаковываемой номенклатуры.
Есть 3 основных типа переупаковки:
Для добавления номенклатур в процедуру переупаковки выберите нужную вкладку (из чего переупаковываем или новая номенклатура) и нажмите на кнопку или
. При добавлении исходной номенклатуры Вам откроется окно стока, аналогичное тому, что используется в модуле «Заказы». Во вкладке новая номенклатура открывается окно, аналогичное добавлению номенклатур в приход. После того, как все номенклатуры добавлены, можно приступать к переупаковке. Процедура переупаковки описывается во вкладке «Процедура переупаковки»
Для подтверждения выберите кол-во исходного переупаковываемого товара нажмите . Если выбранное количество не соответствует заявленному, то в поле «Остаток» в исходной номенклатуре останется разница между подобранным и переупакованным. После этого следует разместить получившуюся номенклатуру.
Организация политики резервного копирования в рамках БД Oracle 10G 10.2.0.4
На сервере предоставленной компанией развернута операционная система
- Microsoft Windows 2008 Server 64
- Oracle 10 G 64
Настроена система резервного копирования СУБД Oracle 10G по технологии DataGuard.
*Проведенные меры гарантируют надежность базы и невозможность потери данных в рамках 5 минут. Скорость восстановления в случаи возможного сбоя составит менее 2 часов. Рекомендации: после внедрения системы CWMS3000 реализовать холодное резервное копирование базы данных и архивных логов на независимый, не хранящийся в помещении серверной источник (пример: кассета, стример и т.д.), в этом случаи исключается абсолютная возможность потери данных. *
1. Процедура резервного копирования.
- резервное копирование выполняется непрерывно в режиме онлайн
Рис1. задание BACKUP выполняется НЕПРЕРЫВНО . Основной сервер база данных Oralce 10G 10.2.0.4 orawms-01 в режиме реального времени (не позже чем раз в 5 минут) передает ARCHIVELOG на резервный сервер Oralce 10G 10.2.0.4 orawms-02 , который в свою очередь производит все транзакции произошедшие на основном сервере. Процессом управляет встроенные в Oralce 10G 10.2.0.4 механизмы DATAGUARD . Сервера автоматически находят друг друга (выключение сервера, перезагрузка сервера, выключение и простой до 24 часов) при условии нахождения в рамках одной ЛВС (Локально Вычислительной Сети) и неизменности сетевых реквизитов указанных выше, и синхронизируются .
2. Процедура проверки валидности схемы резервного копирования.
Рекомендация выполнять процедуру 2 - Ежедневно .
Шаг 1.
Пуск -> Выполнить (Действие возможно выполнять как на любом из указанных выше серверах, так и на любом ПК находящимся в рамках одной ЛВС с серверами с установленным OracleClient версии 10G)
dgmgrl
Шаг 2(dgmgrl).
connect sys/Пароль
show configuration
Должно быть слово SUCCES если не SUCCES сервера находятся не в синхронизированном состоянии. Необходимо оставить заявку в техническую поддержку ООО “ИнтелСервис”:
Тел. +7495 7757631
notify@cwms3000.ru
Шаг 3(dgmgrl).
SHOW DATABASE 'bwms' 'RecvQEntries';
(команда возвращает таблицу лог-файлов, полученных из основной базы, но не примененных к резервной. При синхронной работе таблица должна быть пустой)
Шаг 4(dgmgrl).
EDIT DATABASE 'bwms' SET STATE='READ-ONLY';
(перевод резервной базы в режим «только чтение»)
Шаг 5(sqlplus) Выполняется на резервном сервере.
Пуск -> Выполнить
Sqlplus
Login: *
Password: *
(запуск командной оболочки для sqlplus)
Шаг 6(sqlplus) Выполняется на резервном сервере.
Select max(n) from st_stock;
Select max(n) from st_doc_in;
Select max(n) from st_doc_out;
(запросы возвращают номера последних строк из таблиц: сток, документы прихода, документы расхода. Их необходимо зафиксировать, для дальнейшего сравнения с номерами строк в основной базе)
Шаг 7(sqlplus) Выполняется на основном сервере.
Выполнить Шаги 5 и 6 на основном сервере. Сравнить полученные номера на основном и резервном серверах.
При сильном расхождении номеров – на сотни, тысячи и т.п., необходимо оставить заявку в техническую поддержку ООО “ИнтелСервис”.
Шаг 8(dgmgrl).
EDIT DATABASE 'bwms' SET STATE='ONLINE';
(возврат резервной базы в состояние «подключена»)
3. Процедура перехода на использование резервного сервера.
В случаи если основная база вышла из строя и не подлежит востанавлению штатными методами (отказ wms) выполняется следующая процедура:
Шаг 1.
Пуск -> Выполнить (Действие выполняется на резервном сервере)
dgmgrl
Шаг 2.
connect sys/Пароль
Шаг 3.
failover to bwms (резервный сервер берет на себя функции основного).
КОМАНДА выполняется при одобрении инженера технической поддержки.
Тел. +7495 7757631
notify@cwms3000.ru
После команды меняем IP адреса на сервере DNS вручную
Перед запуском в Listner поменять IP - адрес!!!!!!
1) В модуле Рабочие места->Накладные->Инвентаризация создать инвентаризацию нажатием кнопки "Новый".
В При создании вводятся:
2) Во вкладке "Бланк инвентаризации" настраивается фильтр по ячейкам, которые будут участвовать в инвентаризации.
После задания фильтра по кнопке Сформировать формируется xls-файл, по которому будет производиться инвентаризация (инвентаризационная ведомость).
При выбранном параметре «+ Сток» в файл будет экспортироваться товарный запас по отбираемым ячейкам.
3) Накладную инвентаризации следует перевести в один из следующих статусов: со списанием или без списания стока.
4) После проведения инвентаризации следует загрузить экспортированный xls-файл с заполненными актуальными значениями строками. Делается это аналогично выгрузке во вкладке "Бланк инвентаризации" нажатием кнопки "Загрузить", выбрав заполненный файл.
5) После того, как файл с составом инвентаризации загружен, следует перевести инвентаризацию в статус "Завершен". Фактический товар попадет на сток, как только инвентаризация будет переведена в финальный статус.
Инвентаризация.
1. Авторизоваться. Отсканировать личный штрих-код и ввести пароль
2. Выбрать в главном меню пункт 3 «Инвентаризация»
3. Ввести номер инвентаризации (номер сообщает оператор)
4. Выбрать тип инвентаризации
5. Сканировать ячейку
6. Сканировать номенклатуру
7. Введите количество
8. Выбрать кондиция или брак
9. Сканируйте PID.
10. Выбрать пункт ввода срок годности 3
11. Выбрать 1- Если известен срок годности, 2-Дата производства
12. Ввести дату в форме ДДММГГ, т.е. 1 января 2005 года -> 010105
13. Ввести 0 для подтверждения проинвентаризированной паллеты
14. Повторить пункты 5-13
Решение
1) Для настройки рассылки необходимо внести в реестр \HKEY_CURRENT_USER\Software\CWMS3000\ следующие данные
• MailFrom – указывать почту отправителя
• MailSMTPHost – указываем SMPT сервер
• MailSMTPPort – указываем порт SMTP сервера
• MailUser – Логин
• MailUserPwd – Пароль
2) После чего проверяем рассылку тестовым сообщением, нажав кнопку «Test Mail»
3) Проверяем входящие.
ПРИ РАБОТЕ С ТЕРМИНАЛАМИ СБОРА ДАННЫХ ЗАПРЕЩАЕТСЯ:
ЗА НАРУШЕНИЕ ДАННЫХ УСЛОВИЙ ПРИ РАБОТЕ С ТЕРМИНАЛАМИ СБОРА ДАННЫХ И ДРУГИМИ ТМЦ, ЗАДЕЙСТВОВАННЫМИ В ПРОЦЕССЕ РАБОТЫ, ВИНОВНЫЕ ЛИЦА БУДУТ ПОДВЕРГНУТЫ ДИСЦИПЛИНАРНО-АДМИНИСТРАТИВНОМУ НАКАЗАНИЮ, НАЧИНАЯ ОТ ШТРАФА (В РАЗМЕРЕ РАСЧИТАННОГО УЩЕРБА НАНЕСЁННОГО ОРГАНИЗАЦИИ), И ВПЛОТЬ ДО УВОЛЬНЕНИЯ.
ПРИ РАБОТЕ С ТЕРМИНАЛАМИ СБОРА ДАННЫХ РЕКОМЕНДУЕТСЯ:
Среднее время зарядки аккумулятора – 6/8 часов.
КАЖДЫЙ ТЕРМИНАЛ, ЗАДЕЙСТВОВАННЫЙ В РАБОТЕ, ДОЛЖЕН ОДИН РАЗ В МЕСЯЦ ЗАРЯЖАТЬСЯ В ТЕЧЕНИИ 8 ЧАСОВ ЧЕРЕЗ КРЕДЛ, ДЛЯ ПОДДЕРЖАНИЯ ЗАРЯДА ВНУТРЕННЕЙ БАТАРЕИ, ЗАДЕЙСТВОВАННОЙ ПРИ ЗАМЕНЕ ОСНОВНОГО АККУМУЛЯТОРА ТСД!
CRADLE - ОДНОПОЗИЦИОННОЕ НАСТОЛЬНОЕ УСТРОЙСТВО-ПОДСТАВКА ПОД ТЕРМИНАЛ СБОРА ДАННЫХ, ДЛЯ ЗАРЯДКИ И ПРОГРАММИРОВАНИЯ.
КОНТРОЛЬ ИСПОЛНЕНИЯ ПОЛОЖЕНИЯ ЗА МАТЕРИАЛЬНО-ОТВЕТСТВЕННЫМ ЛИЦОМ
Выгружать не более 100 объектов в один файл
Тег | Название поля | Обяз-ный | Тип данных | Тип данных | |
---|---|---|---|---|---|
<NOMENKLATURA> | Список номенклатуры | ||||
<NOM> | Номенклатура | ||||
<CODE> </CODE> |
Код номенклатуры | Да | string | ||
<CODE2> </CODE2> |
Код номенклатуры | Да | string | Альтернативный код номенклатуры, используется в некоторых печатных формах | |
<NAME> </NAME> |
Наименование номенклатуры | Да | string | ||
<NAME_DOC> </NAME_DOC> |
Наименование для документов | Нет | string | Дополнительный параметр номенклатуры | |
<GROUP_NAME> </GROUP_NAME> |
Наименование группы товара | Да | string | ||
<UNIT_NAME> </UNIT_NAME> |
Сокращение единицы учёта | Да | string | ||
<UNIT_OP_NAME> </UNIT_OP_NAME> |
Сокращение операционной единицы учёта | Да | string | ||
<UNIT_CL_NAME> </UNIT_CL_NAME> |
Сокращение единицы учёта клиента | Да | string | ||
<EXPIRE> </EXPIRE> |
Срок годности товара в днях | Нет | integer | По умолчанию 0 | |
<SALE_DAYS> </SALE_DAYS> |
Срок реализации в днях | Нет | integer | По умолчанию 0 | |
<STORAGE_TEMP> </STORAGE_TEMP> |
Условия на температуру хранения в градусах | Нет | string | Текст ячейки | |
<DSC> </DSC> |
Примечание | Нет | string | ||
<ABC_GROUP> </ABC_GROUP> |
Нет | integer | По умолчанию 0 | ||
<GOST> </GOST> |
Информация о ГОСТ | Нет | string | ||
<BREND> </BREND> |
Производитель товара/бренд | Нет | string | ||
<STATUS> </STATUS> |
Статус номенклатуры | Нет | integer | ||
<id_importer> </id_importer> |
Импортер (идентификатор) | Нет | string | ||
<id_producer> </id_producer> |
Производитель (идентификатор) | Да | string | ||
<id_supplier> </id_supplier> |
Поставщик (идентификатор) | Да | string | ||
<label_desc> </label_desc> |
Текст наклейки | Нет | string | ||
<STAMPED> </STAMPED> |
Помарочный | Нет | integer | ||
<STORE_AREAS> | Области склада | ||||
<STORE_AREA> </STORE_AREA> |
Область склада | Нет | string | ||
</STORE_AREAS> | Области склада. Закрывающий тег | ||||
<PALLS_INFO> | ТЕГ информации о палетизации | Нет | Открывающий тег | ||
<PALL> | Нет | Открывающий тег | |||
<TYPE> </TYPE> |
Тип палеты - код или термин из словаря 359 | Нет | string | По умолчанию 1, зависит от параметра '''DPC''' '''PallTypeAsString''' (см.настройки). | |
<BLCK> </BLCK> |
Палетизация уч.единиц на палете | Нет | integer | По умолчанию -1 | |
<LENGTH> </LENGTH> |
Длина, см. | Нет | float | По умолчанию 0 | |
<WIDTH> </WIDTH> |
Ширина, см. | Нет | float | По умолчанию 0 | |
<HEIGHT> </HEIGHT> |
Высота, см. | Нет | float | По умолчанию 0 | |
<WEIGHT_NETTO> </WEIGHT_NETTO> |
Вес нетто, кг. | Нет | float | По умолчанию 0 | |
<WEIGHT_BRUTTO> </WEIGHT_BRUTTO> |
Вес брутто, кг. | Нет | float | По умолчанию 0 | |
<LAYER_CNT> </LAYER_CNT> |
Количество уч.единиц в слое на палете | Нет | integer | По умолчанию 0 | |
</PALL> | Нет | ||||
</PALLS_INFO> | |||||
<UNITS_INFO> | Информация о единицах конвертации | Да | |||
<UNIT> | Хотя бы один | ||||
<TYPE> </TYPE> |
Тип конвертационной единицы | Да | string | Термин из словаря единиц учёта №363 | |
<CNT> </CNT> |
Количество в уч. единицах | Да | integer | ||
<BARCODE> </BARCODE> |
Штрих-код | Нет | string | ||
<BARCODETYPE> </BARCODETYPE> |
Тип штрих-кода | Нет | string | ||
<REPLACE_BARCODE> </REPLACE_BARCODE> |
0/1 – заменять ли штрихкод для единицы учета (иначе– добавление) | Нет | Integer | По умолчанию 0. | |
<WEIGHT_NETTO> </WEIGHT_NETTO> |
Вес нетто кг. | Нет | float | По умолчанию 0 | |
<WEIGHT_BRUTTO> </WEIGHT_BRUTTO> |
Вес брутто кг. | Нет | float | По умолчанию 0 | |
<PRICE> </PRICE> |
Цена | Нет | float | По умолчанию 0 | |
<LENGTH> </LENGTH> |
Длина, см. | Нет | float | По умолчанию 0 | |
<WIDTH> </WIDTH> |
Ширина, см. | Нет | float | По умолчанию 0 | |
<HEIGHT> </HEIGHT> |
Высота, см. | Нет | float | По умолчанию 0 | |
<NDS> </NDS> |
НДС | Нет | float | По умолчанию 0 | |
<VOLUME> </VOLUME> |
Объём, cм3 (куб. см.) | Нет | float | По умолчанию 0 | |
<EXPONENT> </EXPONENT> |
Используется для отображения вложенности единиц конвертации, значения {1;-1}; | Нет | integer | По умолчанию 1. 1 - прямая вложенность(уч.единица ШТ cnt=1- в коробе 30 шт) -1 - обратная вложенность (уч.единица короб cnt=1 - в коробе 30 шт) |
|
</UNIT> | |||||
</UNITS_INFO> | |||||
<OTHER_CODES> | Дополнительные коды | Нет | Открывающий тег. | ||
<CODE> | Нет | ||||
<ARTK_CLIENT> </ARTK_CLIENT> |
Дополнительный номенклатурный код | Да | string | ||
<NAME_ITEM_CLIENT> </NAME_ITEM_CLIENT> |
Наименование дополнительного кода | Да | string | ||
<ARTK_DATE> </ARTK_DATE> |
Дата регистрации доп кода в системе | Нет | string | ||
<BARCODE> </BARCODE> |
Штриx-код | Да | string | ||
<BARCODETYPE> </BARCODETYPE> |
Тип штрих-кода | Нет | string | ||
<DSC> </DSC> |
Описание | Нет | string | ||
<UNIT_TYP> </UNIT_TYP> |
Тип единицы кор. шт. | Нет | string | ||
<ID_CLIENT> </ID_CLIENT> |
Код клиента Уникальный идентификатор | Да | string | ||
</CODE> | |||||
</OTHER_CODES> | |||||
<EXT_PARAMS> | Набор доп. параметров. | Нет | Открывающий тег | ||
<PARAM> | Открывающий тег | Нет | Один из доп параметров | ||
<PARAM_NAME> </PARAM_NAME> |
ALIAS параметра | Да | string | ||
<PARAM_VALUE> </PARAM_VALUE> |
Значение доп параметра | Да | string | ||
</PARAM> | Закрывающий тег | ||||
</EXT_PARAMS> | Закрывающий тег | ||||
<NOM_CHANGE_NOM> | Открывающий тег. | Нет | Идентичные номенклатуры | ||
<NOM> | Открывающий тег. | Нет | Одна из идентичных номенклатур | ||
<CODE> </CODE> |
Код номенклатуры | Да | string | ||
<ORD> </ORD> |
Порядок резерва | Нет | integer | По умолчанию 1 | |
<COEFF> </COEFF> |
Коэффициент конвертации кол-ва | Да | number | По умолчанию 1 | |
</NOM> | Закрывающий тег | ||||
</NOM_CHANGE_NOM > | Закрывающий тег | ||||
<NOM_CONTENT> | Открывающий тег. | Нет | Состав номенклатуры | ||
<NOM> | Открывающий тег. | Нет | Номенклатура входящая в состав | ||
<CODE> </CODE> |
Код номенклатуры | Да | string | ||
<CNT> </CNT> |
Количество | Да | number | ||
<NOMUNIT> </NOMUNIT> |
Конвертационная единица | Да | integer | Словарь 362 | |
</NOM> | Закрывающий тег | ||||
</NOM_CONTENT > | Закрывающий тег | ||||
<BARCODES> | Открывающий тег. | Нет | Список штрихкодов | ||
<BARCODE> | Открывающий тег. | Нет | Штрихкод- описание | ||
<BAR_CODE> </BAR_CODE> |
Штрихкод | Да | string | ||
<UNIT_TYP> </UNIT_TYP> |
Единицы измерения | Да | string | ||
<TYP> </TYP> |
Тип УЕ | Да | string | Термин из словаря единиц учета №363 | |
<REPLACE_BARCODE> </REPLACE_BARCODE> |
0/1 – заменять ли штрих-код для единицы учёта (иначе– добавление) | Нет | Integer | По умолчанию 0. | |
</BARCODE> | Закрывающий тег | ||||
</BARCODES> | Закрывающий тег | ||||
</NOM> | |||||
</NOMENKLATURA> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <NOMENKLATURA> <NOM> <CODE>9928</CODE> <CODE2>UUU78</CODE2> <NAME_DOC>name_doc</NAME_DOC> <NAME>ннн 1:6990</NAME> <GROUP_NAME>group1</GROUP_NAME> <UNIT_NAME>шт</UNIT_NAME> <UNIT_OP_NAME>кор</UNIT_OP_NAME> <UNIT_CL_NAME>кор</UNIT_CL_NAME> <EXPIRE>0</EXPIRE> <SALE_DAYS>0</SALE_DAYS> <STORAGE_TEMP/> <DSC /> <ABC_GROUP>0</ABC_GROUP> <BREND>ТМ AUTOTIME</BREND> <STATUS>3</STATUS> <id_importer /> <id_producer>vend_414</id_producer> <id_supplier>vend_414</id_supplier> <label_desc /> <STAMPED>1</STAMPED> <STORE_AREAS> <STORE_AREA>5</STORE_AREA> </STORE_AREAS> <PALLS_INFO> <PALL> <TYPE>1</TYPE> <BLCK>1</BLCK> <LENGTH>0</LENGTH> <WIDTH>0</WIDTH> <HEIGHT>0</HEIGHT> <WEIGHT_NETTO>0</WEIGHT_NETTO> <WEIGHT_BRUTTO>0</WEIGHT_BRUTTO> <LAYER_CNT>0</LAYER_CNT> </PALL> </PALLS_INFO> <UNITS_INFO> <UNIT> <TYPE>шт</TYPE> <CNT>1</CNT> <BARCODE></BARCODE> <BARCODETYPE></BARCODETYPE> <WEIGHT_NETTO>0</WEIGHT_NETTO> <WEIGHT_BRUTTO>0</WEIGHT_BRUTTO> <PRICE>0</PRICE> <LENGTH>0</LENGTH> <WIDTH>0</WIDTH> <HEIGHT>0</HEIGHT> <NDS>0</NDS> <VOLUME>0</VOLUME> <EXPONENT>1</EXPONENT> </UNIT> <UNIT> <TYPE>кор</TYPE> <CNT>5</CNT> <BARCODE></BARCODE> <BARCODETYPE></BARCODETYPE> <WEIGHT_NETTO>0</WEIGHT_NETTO> <WEIGHT_BRUTTO>0</WEIGHT_BRUTTO> <PRICE>0</PRICE> <LENGTH>0</LENGTH> <WIDTH>0</WIDTH> <HEIGHT>0</HEIGHT> <NDS>0</NDS> <VOLUME>0</VOLUME> <EXPONENT>1</EXPONENT> </UNIT> </UNITS_INFO> <OTHER_CODES> <CODE> <ARTK_CLIENT>add_code</ARTK_CLIENT> <NAME_ITEM_CLIENT>name_add_code</NAME_ITEM_CLIENT> <BARCODE>EAN13</BARCODE> <BARCODETYPE>0000073601210</BARCODETYPE> <DSC></DSC> <UNIT_TYP></UNIT_TYP> <ID_CLIENT>Client1</ID_CLIENT> </CODE> </OTHER_CODES> <EXT_PARAMS> <PARAM> <PARAM_NAME>ext_param1</PARAM_NAME> <PARAM_VALUE>val1</PARAM_VALUE> </PARAM> </EXT_PARAMS> <NOM_CHANGE_NOM> <NOM> <CODE>1276654</CODE> <ORD>1</ORD> <COEFF>1.1</COEFF> </NOM> <NOM> <CODE>46344</CODE> <ORD>2</ORD> <COEFF>1.1</COEFF> </NOM> </NOM_CHANGE_NOM> <NOM_CONTENT> <NOM> <CODE>content_code1</CODE> <CNT>2</CNT> <NOMUNIT>1</NOMUNIT> </NOM> </NOM_CONTENT> <BARCODES> <BARCODE> <BAR_CODE>237847656437463</BAR_CODE> <UNIT_TYP>шт</UNIT_TYP> <TYP>EAN13</TYP> </BARCODE> <BARCODE> <BAR_CODE>258476359667757</BAR_CODE> <UNIT_TYP>шт2</UNIT_TYP> <TYP>EAN13</TYP> </BARCODE> <BARCODE> <BAR_CODE>4875643746245</BAR_CODE> <UNIT_TYP>кор</UNIT_TYP> <TYP>EAN13</TYP> </BARCODE> </BARCODES> </NOM> </NOMENKLATURA>
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
file | p2 | Маска файла для загрузки | Да | |
store_n | p3 | Номер склада | Да | |
nom_unit_update | p4 | Обновлять данные об УЕ номенклатуры (0/1) | Нет | 0 |
nu_update_price | p4p | При обновлении данныx об УЕ номенклатуры обновлять только цену (0/1) (Требует nom_unit_update = 1) | Нет | 0 |
pall_update | p5 | Обновлять данные о паллетизации(0/1) | Нет | 0 |
change_nom | p6 | Возможность перезагрузить (обновить) номенклатуру. В противном случае ошибки не будет все равно | Нет | 0 |
utf | p7 | Строка, по ум. пустая. Если не пустая, считается, что кодировка файла UTF8 | Нет | 0 |
PallTypeAsString | p8 | Цифра(0/1), 0- паллетизация указывается кодом из словаря. 1- паллетизация указывается кодом, если указано не число, то- термин из словаря 359 | Нет | 0 |
SupplierMustExists ProducerMustExists ImporterMustExists |
p9 p10 p11 |
(0/1) три независимых параметра, если 1- соответствующий тег обязательный | Нет | 0 |
debug | p14 | Режим отладки - не рекомендуется использовать. | Нет | 0 |
anchors | p15 | Список статусов заказа для которых генерируется flashback | Нет | 0 |
<REPLACE_BARCODE> | Тег, значение(0/1), позволяет добавлять или заменять соответствующий ШК, заданный тегом <BARCODE> того же уровня. | Нет | 0 |
Тег | Название поля | Обяз-ный | Тип данных | Тип данных |
---|---|---|---|---|
<STOCK> | Список | Да | Открывающийся тег. | |
<REC> | Элемент списка | Нет | Открывающийся тег. | |
<CODE> </CODE> |
Нет | integer | Код номенклатуры | |
<EXPIRE_DATE> </EXPIRE_DATE> |
Срок годности | Нет | String | Срок годности dd.mm.yyyy |
<CNT> </CNT> |
Количество товара | Нет | Unsigned Integer | Количество уе |
<FD></FD> | Дата и время среза стока | Нет | String | Дата стока |
<NOM_TYP> </NOM_TYP> |
Состояние единицы учета | Нет | Unsigned Byte | словарь №422 (кондиция - 1 /брак - 3) |
<SUB_NOM_TYP> </SUB_NOM_TYP> |
классификация кондиции\брака | Нет | string | Подгруппа кондиции брака |
<PALL_TYPE> </PALL_TYPE> |
Тип паллеты | Нет | Unsigned Byte | ссылка на словарь 359: 1-евро 2-амер и др |
<ST_PART_N> </ST_PART_N> |
Идентификатор партии | Нет | String | Партия, пример SDTD12234 |
<STATUS> </STATUS> |
Статус в стоке | Нет | Unsigned Byte | 1-Приходован на склад 3-Перемещение 5-Переупакован 6-Зарезервирован 8-Зарезервировано на переупаковку 9-Безадресная резервация под заказ 10-Неофактуренный приход 12-Забраковано |
<DSC> </DSC> |
Примечание к заказу | Нет | String | Примечание |
</REC> | ||||
</STOCK> |
<?xml version="1.0" encoding="Windows-1251" standalone="yes"?> <STOCK> <!-- ТЕГ стока --> <REC> <!-- ТЕГ записи остатка --> <CODE>F1234</CODE> <!-- код номенклатуры --> <EXPIRE_DATE>01.05.2010</EXPIRE_DATE> <!-- срок годности --> <CNT>100</CNT> <!-- количество товара --> <FD>01.05.2008 13:03:35</FD> <!-- дата и время среза стока --> <NOM_TYP>1</NOM_TYP> <!-- состояние единицы учета словарь №422 (кондиция - 1 /брак - 3) --> <SUB_NOM_TYP>SSG 12</SUB_NOM_TYP> <!-- классификация кондиции \ брака --> <PALL_TYPE>1</PALL_TYPE> <!-- тип паллеты ссылка на словарь 359 --> <ST_PART_N>F12345</ST_PART_N> <!-- идентификатор партии --> <STATUS>1</STATUS> <!-- статус стока --> <!-- ~8 Списано под переупаковку --> <!-- 1 Приходован на склад --> <!-- 3 Перемещение --> <!-- 5 Переупакован --> <!-- 6 Зарезервирован --> <!-- 7 Отгружено --> <!-- 8 Зарезервировано на переупаковку--> <!-- 9 Безадресная резервация под заказ --> <!-- 10 Неофактуренный приход--> <!-- 12 Забраковано --> <!-- 13 Перемещение по инициативе склада--> <!-- 14 Инвентаризация--> <!-- 17 Неофактуренный расход--> <DSC>примечание</DSC> </REC> </STOCK> <!-- ТЕГ стока -->
Параметр | Сокр параметр |
Описание | Обязательный | Значение по умолчанию |
---|---|---|---|---|
contragent_n | p1 | Номер контрагента | Да | |
store_n | p2 | Номер склада | Да | |
file | p3 | Маска файла для загрузки | Да | |
utf | p4 | Строка, по ум. пустая. Если не пустая, считается, что кодировка файла UTF8 | Нет | 0 |
dpc_task_n | p5 | Номер задачи DPC, которая осуществляет выгрузку данных о состоянии стока (например, генерирует отчет r_StockEqual) | Да | |
anchors | p15 | Строка якорей - в стандартном модуле не используется | Нет |
Решение
1) Открываем терминальный клиент.
2) Нажимаем двойным щелчком на пусто место, которое показано на скриншоте.
3) Открывается режим отладки
4) Ищем номер, который необходимо скрыть
5) Смотрим какой у него номер BNODE
6) После чего идём в Рабочие места -> Штрих кодирование - > Графы переходов ТК
7) Ищем в списке номер 935 и нажимаем редактировать (карандашик)
8) Открывается редактирование перехода
9) Если доступ уже имеется, то необходимо назначить данный доступ сотруднику (На примере покажу как скрыть данный переход у сотрудника Герасимов С. Э.) с доступом 0.
10) Заходим в Утилиты -> Доступы
Ищем в левом поле сотрудника, а в правом доступ.
(Если доступ отсутствует, создаём пункт 15)
11) Ставим галочку, после чего жмём 2 раза на зеленую галочку.
12) Видим, что доступ переместился в нижнее поле.
13) Нажимаем редактирование и выставляем доступ 0, сохраняем.
Метрику указывать в том случае, если у роли сотрудника есть доступ с метрикой например 1000, то при добавлении доступа сотруднику необходимо указать метрику больше 1000
14) После чего, дынный переход в терминальном клиенте у данного сотрудника исчезнет.
15) Если доступ в пункте 9 отсутствует
16) То заходим в Утилиты -> Доступы. И создаём доступ
1. Наименование «Пропуска - Терминал»
2. Системное имя «StDocCar_Term»
3. Тип доступа «Доступ», 3
4. Ссылка на системный номер родителя (Нажимаем на 3 точки и ищем по номеру 1633)
5. Сохраняем
17) После чего, проделываем пункты с 10 по 14.
Решение
1) Открываем терминальный клиент.
2) Нажимаем двойным щелчком на пусто место, которое показано на скриншоте.
3) Открывается режим отладки
4) Ищем номер, который необходимо скрыть
5) Смотрим какой у него номер BNODE
6) После чего идём в Рабочие места -> Штрих кодирование - > Графы переходов ТК
7) Ищем в списке номер 935 и нажимаем редактировать (карандашик)
8) Открывается редактирование перехода
9) Если доступ уже имеется, то необходимо назначить данный доступ сотруднику
(На примере покажу как скрыть данный переход у сотрудника Герасимов С. Э.) с доступом 0.
10) Заходим в Утилиты -> Доступы
Ищем в левом поле сотрудника, а в правом доступ.
(Если доступ отсутствует, создаём пункт 15)
11) Ставим галочку, после чего жмём 2 раза на зеленую галочку.
12) Видим, что доступ переместился в нижнее поле.
13) Нажимаем редактирование и выставляем доступ 0, сохраняем.
Метрику указывать в том случае, если у роли сотрудника есть доступ с метрикой например 1000, то при добавлении доступа сотруднику необходимо указать метрику больше 1000
14) После чего, дынный переход в терминальном клиенте у данного сотрудника исчезнет.
15) Если доступ в пункте 9 отсутствует
16) То заходим в Утилиты -> Доступы. И создаём доступ
1. Наименование «Пропуска - Терминал»
2. Системное имя «StDocCar_Term»
3. Тип доступа «Доступ», 3
4. Ссылка на системный номер родителя (Нажимаем на 3 точки и ищем по номеру 1633)
5. Сохраняем
17) После чего, проделываем пункты с 10 по 14.
Инструкция по установке службы Windows для java-приложений
Для работы обязательно требуется установленный NET Framework версии 4.0 и выше.
Для запуска Андройд сервера и REST в режиме служб понадобится следующее:
Sc create CWMS3000AndroidServ(CWMS3000RESTServ) binPath= C:\MyService\MyService.exe DisplayName= ″CWMS3000AndroidServ(CWMS3000RESTServ)″ type= own start= auto
После create ID сервиса из .xml
binPath – путь до файла WinSW.NET4.exe
DisplayName – имя из .xml
Запускаем службу и проверяем работоспособность.
Решение
1) Заходим в Утилиты -> Доступы.
2) И создаём доступ
1. Наименование
2. Системное имя
3. Тип доступа «Доступ», указываем 3 или 0 (3 – Разрешить, 0 - Запретить)
4. Ссылка на системный номер родителя (Нажимаем на 3 точки и выбираем, тот номер в котором должен будет работать доступ, на примере указан «Терминальный клиент»)
5. Сохраняем
Ссылка на инструкцию по снятию трассировки:
Ссылка на инструкцию по поиску и расшифровки трассировки:
Решение
1) Шрифты, используемые для ШК, можно получить в Утилитах -> Библиотеках.
2) Фильтруем записи с расширением .ttf
3) Выгружаем нажатием на «…» , далее «Выгрузить из БД»
4) Далее открываем локальную папку, из которой производится запуск ВМС,
по умолчанию в папке xlt\ будет выгружен шрифт.
Например: C:\CWMS3000\xlt\
5) Открываем нужный шрифт и устанавливаем
Настраивается под конкретный сервер CWMS3000. Пример сценария:
del /Q "D:\backup\dump\*"
set _my_datetime=%date%_%time%
set _my_datetime=%_my_datetime: =_%
set _my_datetime=%_my_datetime::=%
set _my_datetime=%_my_datetime:/=_%
set _my_datetime=%_my_datetime:.=_%
set _my_datetime=%_my_datetime:,=%
set NLS_LANG=.CL8MSWIN1251
exp.EXE USERID=system/<пароль>@<строка соединен> LOG=D:\backup\dump\%_my_datetime%_mi.log FILE=D:\backup\dump\%_my_datetime%_mi.dmp owner=<login> consistent=y
copy "D:\backup\rar\*" "\\192.168.60.13\backup\Oracle_ed"
и второй пример:
@echo off
for /f "Tokens=1-4 Delims=/ " %%i in ('date /t') do set dt=%%i%%j%%k%%l
for /f "Tokens=1" %%i in ('time /t') do set tm=%%i
set tm=%tm%
set dtt=%dt%%tm-st.dmp%
set tape_label="%computername%-%dtt%"
set set_label="%computername% export %dtt%"
set NLS_LANG=.CL8MSWIN1251
exp.EXE USERID=system/<пароль>@<строка соединения> LOG=f:\IDE_BACKUP\BOX\%dtt%.log FILE=f:\IDE_BACKUP\BOX\%dtt%.dmp owner=<строка соединения> consistent=y
Необходимо задать строку соединения, нужные директории.
Внимание
При импорте БД необходимо настроить системные задачи БД. Это выполняется нашими специалистами.
Новые рекомендации к "Экспорт", "Импорт"
Cоздать объект-директорию, с которым нам предстоит работать:
CREATE OR REPLACE DIRECTORY <объект>AS '/u01/app/oracle/oradata/';
GRANT READ, WRITE ON DIRECTORY <объект> TO <логин>;
Дополнительная информация
В отличии от утилит exp и imp, все файлы Data Pump: и ".dmp", и ".log", - создаются на Oracle-сервере, а не на клиентском компьютере.
Все действия Data Pump выполняются множественными задачами (jobs) (server processes not DBMS_JOB jobs). Эти задачи управляются главным управляюшим процессом, который использует расширенную очередь (Advanced Queuing). Во время выполнения, создаётся и используется главным управляющим процессом таблица очереди, которая называется по имени задания. Таблица удаляется после успешного выполнения задания Data Pump. Задание и очередь могут быть названы на Ваше усмотрение с использованием параметра "JOB_NAME". Остановка клиентского процесса не останавливает связанное с ним Data Pump задание. Передача клиенту комбинации клавиш "Ctrl+C" во время выполнения задания остановит вывод на стандартное устройство вывода и переведёт в командную строку. Ввод "status" в этой командной строке позволить проследить за состоянием текущего задания:
Export> status
Worker 1 Status:
State: EXECUTING
Object Schema: SYSMAN
Object Name: MGMT_CONTAINER_CRED_ARRAY
Object Type: DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
Completed Objects: 261
Total Objects: 261
Job: SYS_EXPORT_FULL_01
Operation: EXPORT
Mode: FULL
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 1
Job Error Count: 0
Dump File: D:TEMPDB10G.DMP
bytes written: 4,096
Worker 1 Status:
State: EXECUTING
Object Schema: SYSMAN
Object Name: MGMT_CONTAINER_CRED_ARRAY
Object Type: DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
Completed Objects: 261
Total Objects: 261
Производительность Data Pump может быть улучшена использованием параметра "PARALLEL". Этот параметр следует использовать совместно с шаблоном "%U" в параметре "DUMPFILE" для разрешения создания или чтения множественных dump-файлов:
expdp <user>/<пароль>@<схема> schemas=<имя схемы> directory=<имя директории> parallel=4 dumpfile=<имя дампа>.dmp logfile=<имя лога>.log
Вьюшка (view) "DBA_DATAPUMP_JOBS" может быть использована для контроля состояния задания:
<user>@<схема>> select * from dba_datapump_jobs;
OWNER_NAME JOB_NAME OPERATION
------------------------------ ------------------------------ ------------------------------
JOB_MODE STATE DEGREE ATTACHED_SESSIONS
------------------------------ ------------------------------ ---------- -----------------
<user> SYS_EXPORT_FULL_01 EXPORT
FULL EXECUTING 1 1
Параметры "INCLUDE" и "EXCLUDE" могут быть использованы для ограничения импорта/экспорта указанных объектов. Когда используется параметр "INCLUDE", в экспорт будут включены только указанные объекты:
expdp <user>/<пароль>@<схема> schemas=<имя схемы> include=TABLE:"IN ('EMP', 'DEPT')" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log
При использовании параметра "EXCLUDE", все объекты, кроме указанных в параметре, будут включены в экспорт:
expdp <user>/<пароль>@<схема> schemas=<имя схемы> exclude=TABLE:"= 'BONUS'" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log
Кроме всего прочего, нужно учитывать особенности реализации среды. Например, в bash строка может выглядеть так:
expdp <user>/<пароль>@<схема> schemas=<имя схемы> exclude=TABLE:\"like \'USER%\'\" directory=<имя директории> dumpfile=<имя дампа>.dmp logfile=<имя лога>.log
Data Pump API
Вместе с утилитами Data Pump, Oracle предоставляет PL/SQL API. Следующий пример показывает, как API может быть использован для выполнения экспорта:
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
l_dp_handle NUMBER;
l_last_job_state VARCHAR2(30) := 'UNDEFINED';
l_job_state VARCHAR2(30) := 'UNDEFINED';
l_sts KU$_STATUS;
BEGIN
l_dp_handle := DBMS_DATAPUMP.open(
operation => 'EXPORT',
job_mode => 'SCHEMA',
remote_link => NULL,
job_name => 'EMP_EXPORT',
version => 'LATEST');
DBMS_DATAPUMP.add_file(
handle => l_dp_handle,
filename => 'SCOTT.dmp',
directory => 'TEST_DIR');
DBMS_DATAPUMP.add_file(
handle => l_dp_handle,
filename => 'SCOTT.log',
directory => 'TEST_DIR',
filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
DBMS_DATAPUMP.metadata_filter(
handle => l_dp_handle,
name => 'SCHEMA_EXPR',
value => '= SCOTT');
DBMS_DATAPUMP.start_job(l_dp_handle);
DBMS_DATAPUMP.detach(l_dp_handle);
END;
/
Как только задание запущено, его статус можно проверить используя следующий запрос:
system@db10g> select * from dba_datapump_jobs;
Внешние таблицы
У Oracle появилась поддержка технологий Data Pump, с помощью которых можно преносить данные во внешние таблицы. Драйвер доступа ORACLE_DATAPUMP может быть использован для выгрузки данных в экспорт-файл и последующей перезагрузке их. Выгрузка данных происходит, когда внешняя таблица создана с использованием кляузы "AS":
CREATE TABLE emp_xt
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY test_dir
LOCATION ('emp_xt.dmp')
)
AS SELECT * FROM emp;
Затем данные могут быть запрошены так:
SELECT * FROM emp_xt;
Синтаксис создания указателя на внешнюю таблицу в существующем файле аналогичен, но без кляузы "AS":
DROP TABLE emp_xt;
CREATE TABLE emp_xt (
EMPNO NUMBER(4),
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2))
ORGANIZATION EXTERNAL (
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY test_dir
LOCATION ('emp_xt.dmp')
);
SELECT * FROM emp_xt;
HELP
Опция "HELP=Y" заставит отобразить описание всех доступных параметров:
expdp help=y
Export: Release 10.2.0.3.0 - 64bit Production on Среда, 20 Февраль, 2008 13:57:18
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Утилита экспорта насоса данных предоставляет механизм для передачи объектов данных
между базами данных Oracle. Эта утилита вызывается следующей командой:
Пример: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
Управление выполнением экспорта может осуществляться вводом команды 'expdp' с заданием после нее
различных параметров. Для задания параметров служат ключевые слова:
Формат: expdp КЛЮЧЕВОЕ СЛОВО=значение или КЛЮЧЕВОЕ СЛОВО=(значение1,значение2,...,значениеN)
Пример: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
или TABLES=(T1:P1,T1:P2), если T1 является секционированной таблицей
USERID должно быть первым параметром в командной строке.
Ключевое слово Описание (Знач. по умолчанию)
------------------------------------------------------------------------------
ATTACH Служит для присоединения к существующему заданию, например, ATTACH [=имя задания].
COMPRESSION Уменьшение размера содержимого файла дампа, если допустимо
значения ключевого слова: (METADATA_ONLY) и NONE.
CONTENT Служит для задания данных для выгрузки. Разрешаются ключевые слова:
(ALL), DATA_ONLY и METADATA_ONLY.
DIRECTORY Объект 'каталог' для файлов дампов и файлов журналов.
DUMPFILE Список результирующих файлов дампов (expdat.dmp),
например, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
ENCRYPTION_PASSWORD Ключ пароля для создания столбца зашифрованных данных.
ESTIMATE Служит для вычисления оценочных данных заданий. Допускаются следующие ключевые слова:
(BLOCKS) и STATISTICS.
ESTIMATE_ONLY Служит для вычисления оценочных данных заданий без выполнения экспорта.
EXCLUDE Служит для исключения определенных типов объектов, например, EXCLUDE=TABLE:EMP.
FILESIZE Служит для задания размера каждого файла дампа в байтах.
FLASHBACK_SCN SCN, используемый для установки мгновенного снимка сеанса назад.
FLASHBACK_TIME Время, используемое на получение SCN, ближайшее к заданному времени.
FULL Служит для экспорта всей базы данных (N).
HELP Служит для отображения сообщений Справки (N).
INCLUDE Служит для включения определенных типов объектов, например, INCLUDE=TABLE_DATA.
JOB_NAME Имя создаваемого задания экспорта.
LOGFILE Имя файла журнала (export.log).
NETWORK_LINK Имя канала связи удаленной базы данных с исходной системой.
NOLOGFILE Не записывать файл журнала (N).
PARALLEL Служит для изменения числа активных рабочих процессов для текущего задания.
PARFILE Служит для задания файла параметров.
QUERY Фраза предиката, используемая для экспорта подмножества таблицы.
SAMPLE Процент данных для экспорта;
SCHEMAS Служит для перечисления схем экспорта (схема при регистрации).
STATUS Частота (сек) с которой должно отслеживаться состояние задания, где
значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
TABLES Служит для указания списка таблиц для экспорта - только для одной схемы.
TABLESPACES Служит для указания списка табличных пространств для экспорта.
TRANSPORT_FULL_CHECK Служит для проверки сегментов хранения для всех таблиц (N).
TRANSPORT_TABLESPACES Список табличных пространств, из которых будут выгружены метаданные.
VERSION Версия объектов для экспорта. Могут использоваться следующие ключевые слова:
(COMPATIBLE), LATEST или любой действительный номер версии базы данных.
Следующие команды могут использоваться в интерактивном режиме.
Примечание. Допускается использование сокращений
Команда Описание
------------------------------------------------------------------------------
ADD_FILE Служит для добавления файла дампа в набор файлов дампов.
CONTINUE_CLIENT Служит для возврата в режим протоколирования. В случае простоя задание будет запущено заново.
EXIT_CLIENT Служит для выхода из сеанса клиента без прекращения выполнения задания.
FILESIZE Размер файла по умолчанию (байт) для последующих команд ADD_FILE.
HELP Отображает сводку по интерактивным командам.
KILL_JOB Служит для отсоединения и удаления задания.
PARALLEL Служит для изменения числа активных рабочих процессов для текущего задания.
PARALLEL=<число рабочих процессов>.
START_JOB Служит для запуска/возобновления текущего задания.
STATUS Частота (сек) с которой должно отслеживаться состояние задания, где
значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
STATUS[=interval]
STOP_JOB Служит для нормального завершения выполнения задания и выхода из клиента.
STOP_JOB=IMMEDIATE выполняет немедленное завершение
задания насоса данных.
impdp help=y
Import: Release 10.2.0.3.0 - 64bit Production on Среда, 20 Февраль, 2008 13:57:18
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Утилита импорта насоса данных предоставляет механизм для передачи объектов данных
между базами данных Oracle. Эта утилита вызывается следующей командой:
Пример: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
Управление выполнением импорта может осуществляться вводом команды 'impdp' с заданием после нее
различных параметров. Для задания параметров служат ключевые слова:
Формат: impdp КЛЮЧЕВОЕ СЛОВО=значение или КЛЮЧЕВОЕ СЛОВО=(значение1,значение2,...,значениеN)
Пример: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
USERID должно быть первым параметром в командной строке.
Ключевое слово Описание (Знач. по умолчанию)
------------------------------------------------------------------------------
ATTACH Служит для присоединения к существующему заданию, например, ATTACH [=имя задания].
CONTENT Служит для задания данных для загрузки. Разрешаются ключевые слова:
(ALL), DATA_ONLY и METADATA_ONLY.
DIRECTORY Объект 'каталог', который должен использоваться для файлов дампов, журналов и sql.
DUMPFILE Список файлов дампов для выполнения импорта из них (expdat.dmp),
например, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
ENCRYPTION_PASSWORD Ключ пароля для доступа к столбцу зашифрованных данных.
Этот параметр недействителен для заданий импорта по сети.
ESTIMATE Служит для вычисления оценочных данных заданий. Допускаются следующие ключевые слова:
(BLOCKS) и STATISTICS.
EXCLUDE Служит для исключения определенных типов объектов, например, EXCLUDE=TABLE:EMP.
FLASHBACK_SCN SCN, используемый для установки мгновенного снимка сеанса назад.
FLASHBACK_TIME Время, используемое на получение SCN, ближайшее к заданному времени.
FULL Служит для выполнения импорта всех данных из источника (Y).
HELP Служит для отображения сообщения Справки (N).
INCLUDE Служит для включения определенных типов объектов, например, INCLUDE=TABLE_DATA.
JOB_NAME Имя создаваемого задания импорта.
LOGFILE Имя файла журнала (import.log).
NETWORK_LINK Имя канала связи удаленной базы данных с исходной системой.
NOLOGFILE Не записывать файл журнала.
PARALLEL Служит для изменения числа активных рабочих процессов для текущего задания.
PARFILE Служит для задания файла параметров.
QUERY фраза предиката, используемая для импорта подмножества таблицы.
REMAP_DATAFILE Служит для переопределения ссылок на файлы данных во всех операторах DDL.
REMAP_SCHEMA Объекты из одной схемы загружаются в другую схему.
REMAP_TABLESPACE Объект табличного пространства повторно отображается в другое табличное пространство.
REUSE_DATAFILES Табличное пространство будет инициализировано, если оно уже существует (N).
SCHEMAS Список схем для импорта.
SKIP_UNUSABLE_INDEXES Служит для пропуска индексов, для которых было установлено состояние 'Индекс не применим'.
SQLFILE Служит для записи всех DDL SQL в указанный файл.
STATUS Частота (сек) с которой должно отслеживаться состояние задания, где
значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
STREAMS_CONFIGURATION включает загрузку метаданных потоков
TABLE_EXISTS_ACTION Действие, которое выполняется, если импортируемый объект уже существует.
Допустимые ключевые слова: (SKIP), APPEND, REPLACE и TRUNCATE.
TABLES Служит для задания списка таблиц для импорта.
TABLESPACES Служит для задания списка табличных пространств для импорта.
TRANSFORM Преобразование метаданных, которое должно применяться к соответствующим объектам.
Допустимые ключевые слова для преобразований: SEGMENT_ATTRIBUTES, STORAGE
OID и PCTSPACE.
TRANSPORT_DATAFILES Список файлов данных для импорта в режиме, допускающем транспортировку.
TRANSPORT_FULL_CHECK Служит для проверки сегментов хранения для всех таблиц (N).
TRANSPORT_TABLESPACES Список табличных пространств, из которых будут загружаться метаданные.
Действительно только для операций в режиме импорта NETWORK_LINK.
VERSION Версия объектов для экспорта. Могут использоваться следующие ключевые слова:
(COMPATIBLE), LATEST или любой действительный номер версии базы данных.
Действительно только для NETWORK_LINK и SQLFILE.
Следующие команды могут использоваться в интерактивном режиме.
Примечание. Допускается использование сокращений
Команда Описание (Значение по умолчанию)
------------------------------------------------------------------------------
CONTINUE_CLIENT Служит для возврата в режим протоколирования. В случае простоя задание будет запущено заново.
EXIT_CLIENT Служит для выхода из сеанса клиента без прекращения выполнения задания.
HELP Отображает сводку по интерактивным командам.
KILL_JOB Служит для отсоединения и удаления задания.
PARALLEL Служит для изменения числа активных рабочих процессов для текущего задания.
PARALLEL=<число рабочих процессов>.
START_JOB Служит для запуска/возобновления текущего задания.
START_JOB=SKIP_CURRENT служит для запуска задания после пропуска
всех действий, которые выполнялись, когда задание было остановлено.
STATUS Частота (сек) с которой должно отслеживаться состояние задания, где
значение по умолчанию (0) соответствует отображению нового состояния, когда оно будет доступно.
STATUS[=interval]
STOP_JOB Служит для нормального завершения выполнения задания и выхода из клиента.
STOP_JOB=IMMEDIATE выполняет немедленное завершение
задания насоса данных.