…равен двум пожарам!
Развлечения ради переехал на другой сервер, а заодно и дизайн обновил.
против Энтропии
…равен двум пожарам!
Развлечения ради переехал на другой сервер, а заодно и дизайн обновил.
В процессе написания кода по заданной спецификации неожижанно обнаружил для себя, что ключевые слова ABAP не являюся зарезервированными.
Поэтому нижеследующий код компилируется и даже выполняется:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
TYPES TYPE. DATA USING TYPE TYPE. PERFORM FORM USING USING USING USING. FORM FORM USING USING TYPE TYPE DATA LIKE USING TYPE TYPE TYPE. DATA = TYPE. DATA TO TYPE I. DATA ADD LIKE TO. ADD ADD TO TO. DATA IF. DATA EQ. DATA ENDIF. IF IF EQ EQ. MOVE TO TO ENDIF. ENDIF. ENDFORM. |
Даже если так писать и можно, то этого делать всё-таки не следует:
Зато есть служебная таблица TRESE, в которой перечисляются разные наименования полей, которые нельзя создавать из-за ограниченний в разных БД.
Вот понадобилось мне вчера оплатить покупку в интернете на сумму 17,98 EUR.
У меня есть PayPal и привязанная мультивалютная карта с основной валютой KZT. По-умолчанию PayPal предлагает доверить ему сконвертировать сумму счета в привычные мне единицы измерения.
Посчитанная сумма равна 6571,41 KZT. Выходит его курс конвертации равен 365,48. Курс местного нацбанка при этом на тот же день составляет: 350,89. Это значит, что дополнительные расходы на конвертацию составляют примерно 4,16%. Многовато.
Недоумённо приподнял левую бровь и положился на курс конвертации банка. Посмотрел на баланс карты после совершения операции оплаты: 53904,52 — 47609,35; заблокирована сумма 6295,17 KZT. Обратным расчетом курс выходит равен 350,12. Это даже ниже, чему нацбанка!
Чудеса?! Очевидно, хитрый банк потом своё возьмёт, причём таким образом, что по выписке итоговая сумма видна напрямую не будет. Если верить сайту самого банка, курс конвертации для карт пляшет в районе отметки 355,00.
Так что в действительности накладные расходы составят 1-2%. Надо зайти попозже и убедиться, когда заблокированная сумма будет списана в действительности.
PS. Доступна сумма 47468,71; следовательно, в реальности списано 6435,81 местных денег; обратный курс равен 357,94. Похожий курс случился примерно через неделю после совершения операции, видимо тогда и была реально списана сумма. Курс покупки банка в розницу, нацбанка и продажи на этот момент составляли соответственно 349,80 — 352,14 — 353,80. Итоговая разница 2,01%.
Интересно почему именно хитрые банкиры карт-курс делают таким широким? Это больше от перестраховки или от жадности?
PPS. На сайте друго банка, кажись несколько более дружелюбного, обнаружил крупную надпись прямым текстом:
Полезно знать, что Visa и MasterCard устроены так, что итоговая сумма в рублях обычно списывается через 5‑7 дней после совершения операции.
Например, если сегодня купить что‑то на $100 или снять их в банкомате, то кажется, что это будет 5880 руб., но на самом деле деньги спишутся по курсу, который будет только через 5‑7 дней. Если курс будет 59,21 руб., то спишется 5921 руб., а если 57,27 руб., то 5727 руб.
PPPS. Небезызвестный Илон Маск является сооснователем PayPal.
I have a fresh new SAP ERP installation and one of the common tasks is automatically created jobs EU_INIT, EU_PUT, EU_REORG.
Here is my real-live shot.
1 500 000 seconds is equal to 416 hours!
Let’s look at the job log:
I hope someday the job will be finally completed.
But what am I talking about?
In my experience there is a widespread practice to use small frequent jobs. So sometimes I have to go to SM37 transaction and make sure that all is fine. For example, I would have 3-7 jobs recurring every five minutes (send mail, checks, post-processing tasks, receive data from external system, post data to external system and so on).
In this case daily view of SM37 is flooded with thousands of jobs that do nothing. BTW: Write logs to SLG1 is more practical solution than write to job log or spool.
Recurring short job can be converted into one big job with infinite loop inside:
do some work + wait five minutes + work again + sleep + work + … etc.
And here we come to general idea of services or daemons. I would like to implement this concept sometimes somewhere.
Preparation
You have configured outbound connection and started to write code.
Iteration 1
CALL FUNCTION ‘RFC_PING’ DESTINATION ‘DUMMY’.
Looks fine enough. But if you make mistake or connection is temporarily down or happens something else, you will get short dumps CALL_FUNCTION_REMOTE_ERROR, CALL_FUNCTION_NO_DEST or CALL_FUNCTION_OPEN_ERROR etc.
You should always avoid short dumps in common environment.
Установка SAP ERP — процесс местами странный и трудоёмкий.
Первое.
Установка требует отдельной и жирной машины. Даже если это будет тестовая машина с минимумом данных для пары пользователей.
Для текущей стандартной версии мне понадобилась VM 12GB RAM/300GB HDD/вменяемый CPU. И очень желательно, чтобы там ничего кроме сабжа не стояло и не планировалось. Платформа SAP HANA имеет более высокие требования, непомерные для меня, хотя посмотреть бы хотелось. (далее…)
Для меня это прошло бы незамеченным, если бы не доставляющее описание. То, что оно «из будушего» — это уже мелочи жизни.
Борьба с Content-ID, перезаливы, спам, реклама, продвижение и прочие тёмные делишки. Как с этим быть?
На некоторых видах прямых соединений из дома на нужные мне сервера NetWeaver я часто сталкиваюсь с ошибкой:
WSAECONNRESET: Connection reset by peer
Она возникает примерно через минуту, если ничего не делать в SAP GUI. Все окна вылетают, блокировки не снимаются, несохранённый результат теряется. Это может быть очень неприятно и обидно.
Кто виноват и что делать? (далее…)
Дополнение к старой записи Индикатор прогресса при обработке больших объёмов.
(далее…)