Вставка схем из Visio в Word

21 Февраль 2011 Нет комментариев

Очередной пост, совсем не связанный с Ораклом. А всё дело в том, что я в очередной раз наткнулся на документ, написанный хорошим специалистом в своём (техническом) деле, но совершенно несведущим в вопросах оформления документов. Кроме «стандартных» проблем оформления (например, заколовки оформлены не заголовками, а просто шрифтами), так еще и схемы из Visio вставлены растровыми картинками. Нужно ли объяснять, как выглядит распечатанный документ?

В общем так.

Правильная вставка может быть выполнена следующими способами

Движение курсора в Visio 2007

Внезапно обнаружил, что Visio 2007 считает, что в русском языке письмо происходит справа налево. Точнее, пишется-то слева на право, а вот курсор двигаться должен наоборот. Т.е. нажимаешь стрелку влево - курсор движется вправо. Оказывается связано это с языковыми параметрами - в русских шаблонах зашит атрибут справа-на-левного написания. Честно говоря, я этого всё равно не понимаю - арабы, если нажимают кнопку движения влево (на которой даже нарисована - специально для тупых, - стрелка влево), они что - ожидают, что курсор сдвинется вправо? Бред, вообще. Ну ладно, фиг с ними, с арабами, но мы-то чем провинились? :)
В общем, прошвырнувшись по инету, я нашел решение…

Инициализация сессии в SQL-developer, SQL-Navigator и т.п.

18 Октябрь 2010 Нет комментариев

В OEBS есть масса вьюшек, внутри которых зашиты пользователе-ориентированные условия, такие как определения языка, например. Т.е. если пользователь залогинился в русском интерфейсе, вьюха будет выдавать результат на русском. При использованнии «в лоб» таких вьюх в SQL-инструментах (developer, navigator, toad и т.п.), они выдают пустой результат (ну оно и понятно). Чтобы всё заработало как надо, необходимо инициализировать сессию. Синтаксис следующий:

  1. BEGIN
  2.    fnd_global.apps_initialize(
  3.            user_id,
  4.            resp_id,
  5.            resp_appl_id,
  6.            security_group_id,
  7.            server_id
  8.    );
  9. END;

Под катом небольшая подсказка

Кастомизация картонизации

На всякий случай, сначала расскажу, что понимается под словом «Картонизация».

Картонизация - это процесс объединения задач набора в наборную тару.

Ну или на пальцах:

Нам нужно набрать заказы клиента, упаковать их и отгрузить. Задач набора  — куча, набор происходит с различных складских подразделений, различных номенклатурных позиций и т.п. Теперь нужно решить, какие из позиций в какую тару упаковывать. Например, хрупкие вещи можно упаковывать только в специальные пластиковые лотки, а все остальное - в картонные короба. Это для примера, в реальности несколько иначе. Так вот картонизация - это процесс, в результате которого система предлагает, какие позиции в какой контейнер нужно упаковывать в процессе набора.

В принципе, картонизация в OEBS сделана неплохо, но бывают случаи, с которыми стандартная картонизация не справляется. Самый простой пример - это различный объем одной и той же позиции при наборе с разных складских подразделений (СП). «Что за бред?» - спросите вы, а я скажу, что такое вполне возможно, если одно из этих СП - с ручным набором (т.е. ручная аккуратная укладка в короба), а другое - с автоматическим (т.е. товар закидывается в тару абы как, в результате чего получается более рыхлая укладка). В этом случае (и еще многих других) понадобится кастомизация картонизации.

Читать далее про катомизацию картонизации

Demantra: Прогнозирование спроса

В своё время у Oracle была своя система прогнозирования спроса, называлась она «Demand Planning» (DP). Теперь Oracle накупил кучу разных компаний, в результате чего они заменили DP на Demantra. Что это за зверь?

Сразу отмечу, что Demantra имеет существенно более дружественный интерфейс, чем DP, и в совокупности с её возможностями, она внушает некоторый оптимизм.

Но я не ставлю себе цели продать Демантру, поэтому сейчас затрону только некоторые особенности, которые полезно будет знать как консультанту, так и заказчику. Назову их условно так:

  1. Прогнозирование на низком уровне
  2. Модель данных
  3. Подбор модели
  4. Работа с факторами
  5. Интеграция в целом, и загрузка данных в частности

Читать далее: особенности прогнозирования в Demantra

Поиск пользователей и полномочий, включающих функцию

Ситуация следующая. В компании заказчика существует множество полномочий OEBS, с которыми работают конечные пользователи. Естественно, это - свои полномочия, а не стандартные вроде Order Management Superuser. Я же, как консультант, пользуюсь именно стандартными полномочиями. И вот, мне нужно, чтобы пользователи в некоторой форме (которую я вижу в стандартных полномочиях) выполнили какие-нибудь действия… Что делать? К кому или в какие полномочия отсылать?

Первое, что приходит в голову - сначала нужно найти пользовательские полномочия, в которых есть эта форма, а потом - найти пользователей с такими полномочиями.
Сделать это простым запросом не получается, т.к. форма (или «функция» - при настройке меню навигации, все конечные пункты назваются именно так) может быть запрятана глубоко в меню и подменю, поэтому придется использовать рекурсию.
Читать: как найти пользователей и полномочия, содержащие функцию

Клиенты aka Customers в OeBS

Структура справочника клиентов в OEBS проста и неочевидна одновременно. Еще в самом начале моего знакомства с этой ERP-системой, я пытался получить разъяснения документации у более опытных коллег, но коллеги, как один, не могли внятно объяснить некоторых вещей… сейчас я их, коллег, прекрасно понимаю. А дело все в том, что изначальная идеология (описанная в документации), структура БД и идеология фактическая, реализованная в приложении, существенно отличаются. Кроме того, в документации, по сути, описана изначальная идеология, а ее связь с фактической описана весьма расплывчато. С нее и начнем.
Изначальная идеология структуры справочника клиентов

Выбор всех адресов клиентов

Вообще, структура клиентов в OEBS довольно замороченная, о ней я расскажу чуть позже.
Сейчас запишу на полях SQL-запрос для выборки всех адресов.

SELECT cas.cust_acct_site_id,
     ps.party_site_number,
     l.*
FROM hz_cust_acct_sites_all cas,
     hz_party_sites ps,
     hz_locations l
WHERE ps.party_site_id = cas.party_site_id
     AND l.location_id = ps.location_id
Categories: Инструментарий Tags:

Подключение к БД Oracle из Excel

Для доступа к БД Oracle из скриптов Visual Basic (в частности - из Excel), необходимо установить Oracle Data Access Components. Скачать можно здесь.

Непосредственно для VB предназначен Oracle Data Control, документацию по которому можно найти здесь.

Отмена автоматических блокировок заказов на продажу

Я уже писал, как настраивается автоматическое применение блокировок к заказам напродажу. Неочевидно. Также не очевидно отменяется это применение блокировок. Делается это следующим образом:

  1. Идем в форму Order Organizer
  2. В форме «Find Orders/Quotes» идем на закладкуHolds Information
  3. Выбираем в списке нужную блокировку и жмем кнопку «Hold Sources»
  4. В открывшемся окне выбираем блокировку с введенными ранее критериями, указываем причину, и разлокируем.

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