Как бы вы решили задачу получения отчета по налоговому виду оплаты, у которого возникли отрицательные суммы в месяце? Причина скорее всего связана с перерасчетом заработной платы.
Говоря языком программиста, нужно сделать select * from rt where lgart = ? and betrg < 0. Банальная задача, которая должна бы быть решена стандартными средствами системы.
Посмотрим, какие инструменты у нас есть для решения этой задачи.
- Стандартный отчет по видам оплаты. Мы можем запустить отчет по всем табельным номерам. А затем в ALV отформатировать, чтобы показывались только отрицательные значения. Минус — сначала выбирается весь объем данных, а только потом уже идет обработка на «минуса». При миллионе записей нерабочий вариант.
- Создать технический расчетный лист, который бы выводил в CVS формате, а внутри прописать условие на минус. Кривенько, но чуть быстрее, чем вариант 1.
- Запускать вручную BI экстрактор в RSA3. Но на селекционном экране нельзя указать значение вида оплаты, поэтому вариант аналогичен п. 1.
- Создать 4** инфотип для отражения результатов расчета в SAP Query. Делается без абапа, но нужно запускать программку для обработки всего кластера и перекладывании данных в этот инфотип. Но можно выполнить требование задачи.
- Транзакция PU12 — экспорт данных в произвольном формате, где можно указать условия чтения кластера, а вывести в любой TXT, CSV формат, который легко отображается в Excel.
- Разработка своего отчета на абапе. Хочется без абапа.
- Разработка коррректирующей схемы с созданием технического вида оплаты, который будет содержать только отрицательные значения, если таковые встречаются.
- Разработка eCATT скрипта, который будет вызывать ФМ по чтению кластера и анализировать выходную информацию.
- Использовать BAPI для вызова из VBA в MS Excel, где производить такой анализ.
- Декластеризация кластера расчета заработной платы и выборка напрямую через SE16.
- Выгрузка в BI заработной платы и анализ данных там (в BI это легко).
На этом моя фантазия закончилась. Я не нашел ни одного стандартного способа в системе получить список табельных номеров с видами оплаты, у которых значение (поля сумма, ставка, число) удовлетворили бы моим условиям (больше, меньше, диапазон). А такая вроде бы тривиальная задача.
Так как получить отчет по видам оплаты с нужными фильтрами по полю сумма?
4 комментария
ZGilGelad
Хз… Я б может только вариант 1 немного расширил: на небольшом объеме данных сохранил вариант с фильтром на отрицательные суммы и потом указывал бы его на СЭ cwtr.
Я б выбрал декластеризацию+свой отчет, либо bi.
Все остальные варианты связаны с распаковкой кластера и плюс-минус выливаются в одно время.
VirVit
Не, не договоримся. Если сохранить вариант, то все равно сначала система выберет весь миллион, отгрузит его в ALV, а там уже только сработает фильтр. То есть куча неэффективной работы и времени.
Pilsner
Вариант 4. самый простой и без абапа. Драйвер сам заполнит ИТ, если его настроить как Payroll Infotypes. Даже в каком-то курсе описан механизм. Но почему-то эту технику никто не использует. А ведь она прабабушка декластеризации))
Calm
>>Использовать BAPI для вызова из VBA в MS Excel, где производить такой анализ.
Применял один раз такой подход. Только не по ЗП данные тянулись. Тормозило жутко.
Переписали с использованием BSP — залетало, как и ожидалось.
Конечно, причина не обязательно в сапе, но с тех пор настороженно отношусь к использованию саповских com-объектов.