Поделиться через


Устранение неполадок соединителя SAP Business Warehouse

Эта статья содержит сведения об устранении неполадок (и возможных решениях) для работы с соединителем SAP Business Warehouse (BW).

Сбор расширенных трассировок SAP BW

Примечание.

Для сбора трассировки запроса, отправленного серверу SAP BW, требуются некоторые параметры и параметры, которые могут быть предоставлены только с помощью Power BI Desktop. Если у вас еще нет копии Power BI Desktop, вы можете получить копию в Центре загрузки Майкрософт. Вы можете задать все необходимые параметры и параметры для расширенных трассировок с помощью этой бесплатной версии.

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

  1. Закройте Power BI Desktop, если он запущен.

  2. Создайте новую переменную среды:

    1. В панель управления Windows выберите >"Расширенная система" Параметры.

      Можно также открыть командную строку и ввести sysdm.cpl.

    2. На вкладке "Свойства системы" выберите вкладку "Дополнительно ", а затем выберите переменные среды.

    3. В разделе "Переменные среды" в разделе "Системные переменные" выберите "Создать".

    4. В новой системной переменной в поле "Имя переменной" введите PBI_EnableSapBwTracing и в разделе "Переменная", введите true.

    5. Нажмите ОК.

    При активации этой расширенной трассировки в папке Traces будет создана дополнительная папка с именем SapBw. См. остальную часть этой процедуры для расположения папки Traces .

  3. Запустите Power BI Desktop.

  4. Очистите кэш перед записью.

    1. В Power BI Desktop выберите вкладку "Файл ".
    2. Выберите параметры и параметры>.
    3. В разделе "Глобальные параметры" выберите "Загрузка данных".
    4. Выберите Очистить кэш.
  5. Пока вы все еще находитесь в параметрах и параметрах, включите трассировку.

    1. В разделе "Глобальные параметры" выберите "Диагностика".
    2. Выберите "Включить трассировку".
  6. Пока вы все еще находитесь в параметрах и параметрах глобальной>диагностики>, выберите папку Open crash dump/traces. Убедитесь, что папка очищается перед записью новых трассировок.

  7. Воспроизведите проблему.

  8. После этого закройте Power BI Desktop, чтобы журналы сбрасывались на диск.

  9. Вы можете просмотреть только что захваченные трассировки в папке SapBw (папка Traces, содержащая папку SapBw, отображается, выбрав папку Open Crash dump/traces на странице диагностики в Power BI Desktop).

  10. Убедитесь, что вы деактивируете эту расширенную трассировку после завершения, удалив переменную среды или установив значение false PBI_EnableSapBwTracing.

Сбор расширенных трассировок SAP BW с помощью трассировок CPIC

Если вы изучаете проблемы проверки подлинности или единого входа, используйте ту же процедуру, что и в разделе "Сбор расширенных трассировок SAP BW", за исключением шага 2d, введите следующие дополнительные системные переменные и значения:

  • CPIC_TRACE—3
  • CPIC_TRACE_DIR — допустимая папка, например E:\traces\CPIC

Остальная часть процедуры остается той же. Трассировки CPIC можно просмотреть в папке, указанной в переменной среды CPIC_TRACE_DIR. Вы также можете просмотреть обычные трассировки в папке SapBw .

Кроме того, отключите эту расширенную трассировку после завершения, удалив переменные среды или установив для BI_EnableSapBwTracing значение false и CPIC_TRACE значение 0.

Выполнение чистой установки соединителя SAP .NET

Если необходимо переустановить соединитель SAP .NET, выполните следующие действия.

  1. Удалите (удалите) Подключение SAP .NET.

  2. После удаления убедитесь, что средство SAP .NET Подключение or не установлено в глобальном кэше сборок (GAC), убедившись, что следующие пути не существуют или не содержат библиотеки DLL:

    • 32-разрядный GAC:

      C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23

      C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco_utils\v4.0_3.0.0.42__50436dca5c7f7d23

    • 64-разрядный GAC:

      C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23

      C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco_utils\v4.0_3.0.0.42__50436dca5c7f7d23

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

    C:\Program Files\SAP\SAP_DotNet Подключение or3_Net40_x64

    C:\Program Files (x86)\sap\SAP_DotNet Подключение or3_Net40_x86

  4. Переустановите соединитель и не забудьте выбрать параметр "Установить сборки в GAC ". Рекомендуется использовать последнюю версию 3.0.23.

Сообщения об ошибках для устранения неполадок

Метод SAP BW ErrorCode не найден

Method not found: 'Int32 SAP.Middleware.Connector.RfcBaseException.get_ErrorCode()'

Эта ошибка возникает при возникновении ошибки на сервере SAP BW, а соединитель SAP .NET пытается получить сведения об этой ошибке. Однако эта ошибка может скрывать реальную ошибку. Эта ошибка может возникать, когда:

  • Использование старой версии соединителя SAP .NET.

  • Устанавливаются несколько версий соединителя SAP .NET.

  • Соединитель SAP .NET был установлен дважды, один раз в глобальном кэше сборок (GAC) и один раз не в GAC.

Следуйте инструкциям в разделе "Выполнение чистой установки соединителя SAP .NET", чтобы переустановить соединитель.

Это не решит проблему, но предоставит фактическое сообщение об ошибке.

Исключение: инициализатор типов для Microsoft.Mashup.Engine1.Library.SapBusinessWarehouse.
SapBwMicrosoftProviderFactoryService вызвал исключение.

Следуйте инструкциям в разделе "Выполнение чистой установки соединителя SAP .NET", чтобы переустановить соединитель.

Для этого соединителя требуется один или несколько дополнительных компонентов

Если вы получите это сообщение об ошибке, выполните следующие действия по устранению неполадок:

  1. Убедитесь, что версия соединителя SAP .NET установлена в правильной битовой длине. Если у вас установлена 64-разрядная версия Power BI Desktop, убедитесь, что установлен 64-разрядный соединитель SAP .NET.

  2. Убедитесь, что при установке Подключение or SAP .NET сборки установки в GAC были проверка. Чтобы проверить установку GAC, откройте Windows Обозреватель и перейдите в следующее:

          C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco

    Например, полный путь может быть следующим:

          C:\Windows\Microsoft.NET\assembly\GAC_64\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll

Если вы установили 32-разрядную версию соединителя SAP .NET, это будет C:\Windows\Microsoft.NET\assembly\GAC_32\sapnco\v4.0_3.0.0.42__50436dca5c7f7d23\sapnco.dll (и вам потребуется 32-разрядная версия Power BI Desktop).

Другой способ проверка GAC — использовать gacutil (один из вариантов отключения подписи строгого имени). Его нужно запустить из 64-разрядной командной строки. Вы можете проверка содержимое GAC, открыв командную строку, перейдя к пути gacutil.exe и выполнив следующие действия:

      gacutil -l

Например, в выходных данных вы увидите следующее:

      sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=AMD64 sapnco_utils, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=AMD64

"Нет авторизации RFC для функции ...*

Реализация 2.0 требует доступа к следующим BAPIs. Чтобы устранить эту проблему, обратитесь к группе SAP Basis и попросите разрешения для этих BAPIs и RFCs для пользователя.

  • Подключение:

    • RFC_PING
    • RFC_METADATA_GET
  • Выполнение многомерных выражений:

    • RSR_MDX_CREATE_OBJECT
    • BAPI_MDDATASET_CREATE_OBJECT
    • BAPI_MDDATASET_SELECT_DATA
    • BAPI_MDDATASET_DELETE_OBJECT
    • RSR_MDX_GET_AXIS_INFO
    • RSR_MDX_GET_AXIS_DATA
    • RSR_MDX_GET_CELL_DATA
    • BAPI_MDDATASET_GET_AXIS_INFO
    • BAPI_MDDATASET_GET_AXIS_DATA
    • BAPI_MDDATASET_GET_CELL_DATA
  • Преобразование ExecutionMode в плоскую структуру:

    • RSR_MDX_GET_FLAT_DATA
    • RSR_MDX_GET_FS_DATA
    • BAPI_MDDATASET_GET_FLAT_DATA
    • BAPI_MDDATASET_GET_FS_DATA
  • Потоковая передача ExecutionMode:

    • BAPI_MDDATASET_GET_STREAMDATA
    • BAPI_MDDATASET_GET_STREAMINFO
  • ExecutionMode BasXml:

    • RSR_MDX_BXML_GET_DATA
    • RSR_MDX_BXML_GET_GZIP_DATA
    • RSR_MDX_BXML_GET_INFO
    • RSR_MDX_BXML_SET_BINDING
  • Метаданные:

    • BAPI_MDPROVIDER_GET_DIMENSIONS
    • BAPI_MDPROVIDER_GET_CATALOGS
    • BAPI_MDPROVIDER_GET_CUBES
    • BAPI_MDPROVIDER_GET_MEASURES
    • BAPI_MDPROVIDER_GET_HIERARCHYS
    • BAPI_MDPROVIDER_GET_LEVELS
    • BAPI_MDPROVIDER_GET_PROPERTIES
    • BAPI_MDPROVIDER_GET_ME МБ ERS
    • BAPI_MDPROVIDER_GET_VARIABLES
  • Сведения.

    • BAPI_IOBJ_GETDETAIL (требуется для типизированных измерений (DATS, TIMS))
    • BAPI_USER_GET_DETAIL (используется только для неструктурированного интерфейса)
    • RFC_READ_TABLE (требуется для имен каталогов и определенных вызовов переменных)
  • Может вызываться базовым соединителем SAP .NET:

    • RFC_GET_FUNCTION_INTERFACE
    • FUNCTION_IMPORT_INTERFACE
    • DDIF_FIELDINFO_GET
    • SYSTEM_FINISH_ATTACH_GUI
    • BGRFC_DEST_CONFIRM
    • BGRFC_CHECK_UNIT_STATE_SERVER
    • BGRFC_DEST_SHIP
    • ARFC_DEST_SHIP
    • RFC_FUNCTION_SEARCH
    • RFC_SYSTEM_INFO
    • RFC_SET_REG_SERVER_PROPERTY
    • RFC_DOCU
    • SEO_GET_CLIF_REMOTE
    • SYSTEM_PREPARE_ATTACH_GUI
    • API_CLEAR_TID
    • ARFC_DEST_CONFIRM

Метод не найден "Int32 SAP". Промежуточного. Подключение or. RfcBaseException.get_ErrorCode()

Убедитесь, что соединитель SAP .NET установлен правильно. Ознакомьтесь с разделом "Выполнение чистой установки соединителя SAP .NET".

Эта ошибка возникает, если установленная версия в GAC ниже ожидаемой версии 3.0.18.0. Заметка SAP 2417315 обсуждает этот сценарий.

свойства строки Подключение ion, заданные соединителем

Если предоставлено имя партнера SNC и библиотека SNC, соединитель сервера приложений SAP BW (реализация 2.0) установит эти свойства в строка подключения:

  • SNC_MODE — SncModeApply
  • SNC_LIB — с указанным путем библиотеки; Если это переменная среды, она развернута на этом этапе.
  • SNC_PARTNERNAME — со указанным значением
  • SNC_QOP = RfcConfigParameters.RfcSncQOP.Default

Они используются для подключений сервера приложений SAP BW и SAP BW Message Server.

Для обоих типов подключений наборы соединителей:

  • LANG (язык)
  • КЛИЕНТ

Для подключения к серверу приложений SAP BW соединитель задает следующие параметры:

  • ASHOST (AppServerHost)
  • SYSNR (SystemNumber)

Для подключений сервера сообщений SAP BW соединитель задает следующие параметры:

  • MSHOST (MessageServerHost)
  • SYSID (SystemID)
  • GROUP (LogonGroup)

Недопустимая команда многомерных выражений с <внутренней>

Эта ошибка возникает непосредственно с сервера SAP BW. Реализация 1 соединителя на основе NETweaver RFC не предоставляла эти ошибки пользователю, возвращая пустой результирующий набор.

Эта проблема рассматривается в следующих заметках SAP. Для доступа к этим заметкам требуется S-пользователь. Обратитесь к группе sap Basis, чтобы применить соответствующие исправления для этой проблемы.

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

Проблемы и ограничения

Изменение имен переменных в кубе SAP помещает отчет DirectQuery в неисправное, неустранимое состояние

Возникают следующие симптомы:

  • Сообщение об ошибке:[Expression.Error] The import [XXXX] matches no exports.

  • В журналах—Message: [Expression.Error] The key didn't match any rows in the table.

  • Трассировка стека:

    at Microsoft.Mashup.Engine1.Runtime.TableValue.get_Item(Value key)
    at Microsoft.Mashup.Engine1.Library.Cube.CubeParametersModule.Cube.ApplyParameterFunctionValue.GetParameterValue(CubeValue cubeValue, Value parameter)
    at Microsoft.Mashup.Engine1.Library.Cube.CubeParametersModule.Cube.ApplyParameterFunctionValue.TypedInvoke(TableValue cube, Value parameter, Value arguments)
    Detail: [Key = [Id = \"[!V000004]\"], Table = #table({...}, {...})]
    

Одно из возможных обходных решений заключается в том, чтобы:

  1. Создайте копию PBIX-файла (так как вещи могут нарушиться).

  2. Добавьте переменную среды с именем PBI_AlwaysEnableQueryEditor со значением true. Этот параметр позволит получить доступ к редактору запросов даже в режиме DirectQuery.

    Примечание.

    Эта переменная среды не поддерживается, поэтому ее следует использовать только как описано здесь.

  3. Щелкните правой кнопкой мыши запрос "Куб" и выберите Расширенный редактор.

  4. Запрос должен иметь строку, начинающуюся с "{Cube.ApplyParameter", "[! V000004]" (отсутствующий параметр)". Удалите эту строку.

  5. Нажмите кнопку Готово.

  6. Закройте Редактор Power Query.

  7. Обновите затронутый визуальный элемент.

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

Числовые данные из SAP BW

Примечание.

Приведенные ниже сведения применяются только при использовании реализации 1.0 соединителя SAP BW или реализации 2.0 соединителя SAP BW с режимом неструктурированного режима (когда ExecutionMode=67).

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

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

Меню параметров десятичной нотации.

Power BI Desktop запрашивает систему SAP для десятичной нотации подключенного пользователя и использует это нотацию для форматирования десятичных значений в данных из SAP BW.

SAP BW возвращает десятичные данные с запятой , или точкой . в качестве десятичного разделителя. Чтобы указать, какой из этих sap BW должен использовать для десятичного разделителя, драйвер, используемый Power BI Desktop, вызывает вызов BAPI_USER_GET_DETAIL. Этот вызов возвращает структуру DEFAULTS, которая имеет поле DCPFM , которое содержит нотацию десятичного формата. Поле принимает одно из следующих значений:

  • ' ' (пробел) = Десятичная точка запятая: N.NNN,NN
  • "X" = десятичная точка — период: N,NNN.NN
  • 'Y' = Десятичная точка NNN NNN,NN

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

   You are not authorized to display users in group TI:
      <item>
         <TYPE>E</TYPE>
         <ID>01</ID>
         <NUMBER>512</NUMBER>
         <MESSAGE>You are not authorized to display users in group TI</MESSAGE>
         <LOG_NO/>
         <LOG_MSG_NO>000000</LOG_MSG_NO>
         <MESSAGE_V1>TI</MESSAGE_V1>
         <MESSAGE_V2/>
         <MESSAGE_V3/>
         <MESSAGE_V4/>
         <PARAMETER/>
         <ROW>0</ROW>
         <FIELD>BNAME</FIELD>
         <SYSTEM>CLNTPW1400</SYSTEM>
      </item>

Чтобы устранить эту ошибку, пользователи должны попросить администратора SAP предоставить пользователю SAP BW, используемому в Power BI право на выполнение BAPI_USER_GET_DETAIL. Кроме того, следует убедиться, что у пользователя есть необходимое DCPFM значение, как описано ранее в этом решении по устранению неполадок.

Подключение тивность запросов SAP BEx

Вы можете выполнять запросы BEx в Power BI Desktop, включив определенное свойство, как показано на следующем рисунке:

Включите выпуск для внешнего доступа.

Ограничение интерфейса многомерных выражений

Ограничение интерфейса многомерных выражений заключается в том, что длинные переменные теряют свое техническое имя и заменяются V00000#.

Нет предварительного просмотра данных в окне "Навигатор"

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

Пользователям SAP требуется доступ к определенным модулям функций BAPI для получения метаданных и получения данных из InfoProviders SAP BW. К этим модулям относятся:

  • BAPI_MDPROVIDER_GET_CATALOGS
  • BAPI_MDPROVIDER_GET_CUBES
  • BAPI_MDPROVIDER_GET_DIMENSIONS
  • BAPI_MDPROVIDER_GET_HIERARCHYS
  • BAPI_MDPROVIDER_GET_LEVELS
  • BAPI_MDPROVIDER_GET_MEASURES
  • BAPI_MDPROVIDER_GET_ME МБ ERS
  • BAPI_MDPROVIDER_GET_VARIABLES
  • BAPI_IOBJ_GETDETAIL

Чтобы устранить эту проблему, убедитесь, что у пользователя есть доступ к различным модулям MDPROVIDER и BAPI_IOBJ_GETDETAIL. Для дальнейшего устранения этих или аналогичных проблем можно включить трассировку. Выберите Файл>Параметры и настройки>Параметры. В разделе "Параметры" выберите "Диагностика", а затем нажмите кнопку "Включить трассировку". Попытайтесь получить данные из SAP BW во время активной трассировки и подробнее изучите файл трассировки.

Исключения памяти

В некоторых случаях может возникнуть одна из следующих ошибок памяти:

  • Message: No more memory available to add rows to an internal table.
  • Message: [DataSource.Error] SAP Business Warehouse: The memory request for [number] bytes could not be complied with.
  • Message: The memory request for [number] bytes could not be complied with.

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

Чтобы устранить эту ошибку, рекомендуется упростить запрос или разделить его на небольшие запросы. По возможности отправьте на сервер больше агрегирования. Кроме того, обратитесь к группе SAP Basis, чтобы увеличить ресурсы, доступные на сервере.

Загрузка текстовых строк длиной более 60 символов в Power BI Desktop завершается ошибкой

В некоторых случаях текстовые строки усечены до 60 символов в Power BI Desktop.

Во-первых, следуйте инструкциям в 2777473 . Многомерные выражения: вопросы и ответы по Power BI, обращающиеся к BW или BW/4HANA , и проверьте, устранена ли проблема.

Так как соединитель Power Query SAP Business Warehouse использует интерфейс многомерных выражений, предоставляемый SAP для доступа к стороннему поставщику, необходимо связаться с SAP для возможных решений, так как они принадлежат уровню между интерфейсом многомерных выражений и сервером SAP BW. Спросите, как можно указать "длинный текст XL" для конкретного сценария.

Изображение, показывающее, где задать длинный текст , — xl.

Ограничение CHAR 60, несмотря на "длинный текст" в SAP BW

Существует известное ограничение, в котором характеристики длинного текста в SAP BW отображаются с ограничением на 60 символов в Power BI. Это ограничение символов связано с ограничением в интерфейсе многомерных выражений, и известного обходного решения нет. SAP задокументировал это ограничение многомерных выражений в этом примечании к SAP.

Миграция на реализацию 2.0 при использовании прямого запроса

Из-за отмены реализации 1.0 соединителя SAP Business Warehouse может потребоваться обновить запросы, чтобы воспользоваться преимуществами реализации 2.0. При использовании прямого запроса доступ к редактору запросов ограничен. Поэтому вы не можете легко перейти на реализацию 2.0 без повторного создания всего запроса. Обходной путь — добавить системную переменную среды, чтобы разрешить доступ к редактору запросов. Обратите внимание, что следующие шаги официально не поддерживаются и должны использоваться только как описано здесь.

  1. Создайте новую переменную среды, перейдя к проводник> This PC>Properties>Advanced system settings>Environment Variable System>Variable>New или открыв командную строку и выбрав sysdm.cpl "Создать" в разделе "Системные переменные".
  2. Присвойте переменной PBI_AlwaysEnableQueryEditor среды имя и задайте значение true. Этот параметр переменной позволяет получить доступ к редактору запросов даже в режиме прямого запроса.
  3. На вкладке "Главная" на вкладке "Главная " выберите "Преобразовать данные ", чтобы открыть редактор Power Query.
  4. Обновите запрос, чтобы использовать реализацию 2.0, следуя этим инструкциям, начиная с шага 2 в этой статье.

Конечный запрос должен выглядеть примерно так SapBusinessWarehouse.Cubes("server", "system", "clientId", [Implementation = "2.0"]).