среда, 23 ноября 2016 г.

суббота, 5 ноября 2016 г.

BO всячина

Формулы:
=1=0 - формула возвращает NULL, иногда очень удобно использовать при дальнейшей обработке... например условия
FormatDate
=ToDate(UserResponse("P_0CALDAY_CEIO01");"INPUT_DATE_TIME")
=FormatDate(ToDate(Right([var.Period];19);"INPUT_DATE_TIME");"dd.MM.yyyy")

Сортировки:

Chart

Variable & Scheduling
Вариантов несколько:
1. Два отчета, с скрытой переменной и переменной для ввода
2. Один отчет, с 2мя связанными переменными. Работаем по 2й скрытой... если 1я пустая, то 2ю вычисляем, иначе 2= 1. Типа так.

Или есть самый приличный вариант, правда надо уровень системы и патча - https://archive.sap.com/documents/docs/DOC-62160

Date&Time
https://blogs.sap.com/2013/11/21/how-to-use-formulae-to-change-date-and-time-formats-in-webintelligence/
https://bobjblog.wordpress.com/tag/formatdate/
https://bobjblog.wordpress.com/2012/03/05/web-intelligence-date-formats/

Формат числа
http://www8.senado.gov.br/BOE/OpenDocument/1809120828/AnalyticalReporting/help/en/frameset.htm?4721c57e6e041014910aba7db0e91070.html
https://sapbwinfo.wordpress.com/2016/11/07/custom-number-format-with-decimal/


Blog

="<a href=\"https://BWSERVER/sap/bw/analysis?APPLICATION=EXCEL&OBJECT_TYPE=QUERY_VIEW&OBJECT_ID=ZZ_QUERY_VIEW_NAME"
+ "&var" + URLEncode("0DATE_var") + "="+URLEncode(""+[variable Date])
+ "\" title=\"\" target=\"_blank\" nav=\"web\">LINK</a>"


="<a href=\"https://BWSERVER/sap/bw/analysis?APPLICATION=EXCEL&OBJECT_TYPE=QUERY&OBJECT_ID=ZZ_QUERY_NAME"
+ "&var" + URLEncode("0DATE_var") + "="+URLEncode(""+[variable Date])
+ "\" title=\"\" target=\"_blank\" nav=\"web\">LINK</a>"

Адрес BWSERVER - fm RSBB_URL_PREFIX_GET

="<a href=\"../../opendoc/openDocument.jsp?iDocID=" 
+ "xxxxxxxxxxxxxxx_XXXXXX"
+ "&sIDType=CUID&sType=wid"
+ "&lsS" + URLEncode("0DATE_var") + "="+URLEncode(""+[variable Date])
+ "\" title=\"\" target=\"_blank\" nav=\"doc\">LINK</a>"

Подробнее
https://help.sap.com/doc/225672d1fdbb4a4aac19ae794349ec26/4.2.6/en-US/sbo42sp6_opendocument_en.pdf

Значения измерения в одной строке
https://blogs.sap.com/2016/05/12/group-dimension-values-in-a-single-cell/


Администрирование

https://help.sap.com/docs/SAP_BUSINESSOBJECTS_BUSINESS_INTELLIGENCE_PLATFORM/987ff4008e2d47fb9f92f7b085a204cd/b35f19f0-8f1d-48e5-bc0d-480ada93fc4b.html?version=4.2.4&locale=ru-RU

четверг, 27 октября 2016 г.

Transport BADI

Список:
CTS_EXPORT_FEEDBACK -> feedback after export of a transport request.
CTS_IMPORT_FEEDBACK -> feedback after import of a transport request.
CTS_INT_REQUEST_CHCK -> internal: request checks.
CTS_REQUEST_CHECK -> request checks.
CTS_TASKDOC_TEMPLATE -> determine template for the task documentation.

Пример:
https://blogs.sap.com/2013/09/19/how-to-trigger-atc-or-code-inspector-checks-during-the-release-of-a-transport-task/
https://wiki.scn.sap.com/wiki/display/Snippets/Email+Feedback+for+Transports

Идеи:
CTS_REQUEST_CHECK-CHECK_BEFORE_CREATION – можно сделать проверку name convention для транспортов

CTS_REQUEST_CHECK-CHECK_BEFORE_RELEASE – перед релизом проверить в что там нет пакетов и DTP или что параметры в пакете и DTP идентичны параметрам в продуктивной системе

CTS_REQUEST_CHECK-CHECK_BEFORE_RELEASE_SLIN – можно натравить проверку по name convention из SLIN’a для проверки ABAP’a

CTS_REQUEST_CHECK-CHECK_BEFORE_CHANGING_OWNER – можно настроить уведомление владельца о этом действии

CTS_INT_REQUEST_CHCK- CHECK_BEFORE_RELEASE – не совсем понял чем он отличается от CTS_REQUEST_CHECK-CHECK_BEFORE_RELEASE

CTS_EXPORT_FEEDBACK или CTS_IMPORT_FEEDBACK
- тут можно устроить проверку на момент загрузки данных и переноса… чтобы не мудрить, проверка на активные цепочки
- ну и уведомление BW группы в случае переноса в продуктив , cебе же спокойней будет
- кстати и запрет на перенос в продуктив тоже настроить можно попробовать


вторник, 25 октября 2016 г.

Compaund & Reference удивляет

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

Но тут на днях компаунд меня порадовал...
Необходимо было сделать 2а ссылочных признака и добавить атрибутами в один признак... Добавляя 2й ссылочный признак, меня настигает осознание ...твою же ж м... что компаунд характеристика не будет добалена 2й раз - что по условием задачи, не хорошо.

Т.е. надо делать 2й признак компаунд, забыть о ссылочных. Да, признак не большой и прогружать его надо раз в год, но сам подход разочаровывает...

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

Примеры:



P.s. Cистема следит чтобы reference не поменялся... т.е. подменить на аналогичный по типу данных объект не получится. Это логично, но было интересно проверить.

четверг, 20 октября 2016 г.

За TYPES ляю

Как то понадобилось включить тип в тип... и затупил...
В общем оставил чтобы не вспоминать ещё раз.

   TYPES:
      BEGIN OF tt_data,
        GUID TYPE ZGUID.
        INCLUDE TYPE ZBWXXXXX.
    TYPES:
      END OF tt_data.

  TYPES:
    BEGIN OF tt_result.
     INCLUDE TYPE ZBWXXXXX.
  TYPES:
     GUID TYPE ZGUID,
    END OF tt_result.


data: it_ekpo TYPE STANDARD TABLE OF EKKO INITIAL SIZE 0

lt_tab    TYPE TABLE OF abap_compname WITH EMPTY KEY,
lt_tab = VALUE #( ( 'MANDT' )
                  ( 'FIELD1' )
                  ( 'FIELD2' )
                  ( 'FIELD3' )
                  ( 'FIELD4' )
                  ( 'FIELD5' ) ).

SELECT (lt_tab)
        FROM MKPF.



 TYPES:
    BEGIN OF ty_tab,
      field1 TYPE MKPF-field1,
      field2 TYPE MKPF-field2,
      field3 TYPE MKPF-field3,
      field4 TYPE MKPF-field4,
      field5 TYPE MKPF-field5,
    END OF ty_tab.

    lt_tab      TYPE SORTED TABLE OF ty_tab,
    lo_descr    TYPE REF TO cl_abap_structdescr,
    lt_details  TYPE abap_compdescr_tab WITH HEADER LINE,

    "Get the field list of the structure TY_TAB.
    lo_descr ?= cl_abap_typedescr=>describe_by_name('TY_TAB').
    lt_details[] = lo_descr->components[].

    SELECT (lt_details-name)
      FROM MKPF.

вторник, 2 августа 2016 г.

четверг, 7 апреля 2016 г.

WBS headshot

Нежданно отжег WBS элемент.
В общем понятно что есть внешнее, типа R.0000050.11 и внутренне представление WBS элемента, которое храниться в таблице PRPS поле PSPNR.

Все BI'щики привыкли что видеть WBS во внешнем формате - типа R.0000050.11, ну в крайнем случае R000005011 (см.сюда) PRPS-POSID & POSKI

Короче, в текущих настройках ERP у нас можно было тупо поменять внешнее представление (CJ20N). Данная операция соответственно ничего не генерировала, и только когда по потоку документов MM и FI пошли данные тут то и начался расколбас в отчетах.

Блин, 4 года никому из пользователей не приходила идея переименовать WBS элемент... Красоту решили навести :(

пятница, 29 января 2016 г.

Вкусняшка RSZTREE

Наткнулся тут на транзакцию - RSZTREE

Теперь можно красиво организовать ограниченные и вычисляемые признаки на уровне куба.