Текущее время: Вс, июл 27 2025, 14:24

Часовой пояс: UTC + 3 часа


Правила форума


Вопросы по ППМ (MRP) - сюда.
Вопросы по классификации - сюда.
Вопросы по входящим поставкам - сюда.



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: perl и batch input
СообщениеДобавлено: Пн, июл 31 2006, 11:37 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, ноя 28 2005, 09:49
Сообщения: 83
Пол: Мужской
несколько примеров для создания файлов пакетного ввода для данных из текстового файла. т.е. выгружаются из excel в tab-separated поля и передаются на входной поток perl-программы. формируется файл для sm35.

массовое перемещение (задается источник, приемник, вид движения)
Code:
$rows = 0;

$QQQ  = 100;

# источник материала (приемник для сторно)
$WERKS = "1302";
$LGORT = "1352";
$MVT   = "344";
$UMWRK = "";
$UMLGO = "1352";

&opentran;

while(<>)
{
   chomp;
   ($MATNR,$MENGE) = split("\t");

   if ($rows == $QQQ) {
      &opentran;
   }

   print "SAPMM07M\t0410\tX\n";
   print "\t\t\tBDC_CURSOR\tMSEG-UMLGO\n";

   $rows++;

   if ($rows == $QQQ) {
      print "\t\t\tBDC_OKCODE\tBU\n";
   } else {
      print "\t\t\tBDC_OKCODE\t=NPE\n";
   }

   print "\t\t\tMSEG-MATNR\t$MATNR\n";
   print "\t\t\tMSEG-ERFMG\t$MENGE\n";
   print "\t\t\tMSEG-ERFME\tШТ\n";
   print "\t\t\tMSEG-WERKS\t$WERKS\n";
   print "\t\t\tMSEG-LGORT\t$LGORT\n";

   if (length($UMWRK)>0) {
      print "\t\t\tMSEG-UMWRK\t$UMWRK\n";
   }

   print "\t\t\tMSEG-UMLGO\t$UMLGO\n";

   print "\t\t\tBDC_SUBSCR\tSAPMM07M\t2400BLOCK1\n";
   print "\t\t\tBDC_SUBSCR\tSAPMM07M\t2400BLOCK2\n";
   print "\t\t\tBDC_SUBSCR\tSAPLKACB\t0001BLOCK\n";
   print "\t\t\tDKACB-FMORE\tX\n";
   print "SAPLKACB\t0002\tX\n";
   print "\t\t\tBDC_OKCODE\t=ENTE\n";
   print "\t\t\tBDC_SUBSCR\tSAPLKACB\t0003BLOCK1\n";

}

sub opentran
{
   print "\t\tT\tMB1B\n";
   print "SAPMM07M\t0400\tX\n";
   print "\t\t\tBDC_CURSOR\tRM07M-LGORT\n";
   print "\t\t\tBDC_OKCODE\t=NPE\n";
   print "\t\t\tMKPF-BLDAT\t13.07.2006\n";
   print "\t\t\tMKPF-BUDAT\t30.06.2006\n";
   print "\t\t\tMKPF-BKTXT\tinv\n";
   print "\t\t\tRM07M-BWARTWA\t$MVT\n";
   print "\t\t\tRM07M-WERKS\t$WERKS\n";
   print "\t\t\tRM07M-LGORT\t$LGORT\n";
   print "\t\t\tXFULL\tX\n";
   print "\t\t\tRM07M-WVERS3\tX\n";
   $rows = 0;
}


формирование списка инвентаризации

Code:
$curlgort = '0000';

$head = <>;

$rows = 0;

while(<>)
{
   chomp;
   ($WERKS,$MATNR,$LGORT,$CHARG,$SOBKZ,$LIFNR,$BSTAR,$ERFMG,$ERFME,$EXVKW) = split("\t");


   if ($rows++ >= 500) {
      &closetran;
      &opentran;
   }

   if ($curlgort ne $LGORT) {

      if ($curlgort ne '0000') {
         &closetran;
      }
      &opentran;
   }

   print "SAPMM07I\t0731\tX\n";
   print "\t\t\tISEG-MATNR(01)\t$MATNR\n";
        print "\t\t\tISEG-BSTAR(01)\t$BSTAR\n";
   print "\t\t\tISEG-ERFMG(01)\t$ERFMG\n";
   if ($ERFMG eq 0) {
      print "\t\t\tISEG-XNULL(01)\tX\n";
   }
   print "\t\t\tISEG-ERFME(01)\t$ERFME\n";
   print "\t\t\tBDC_OKCODE\t/07\n";   
}

if ($rows>0) {
   &closetran;
}

sub closetran
{
   print "SAPMM07I\t0731\tX\n\t\t\tBDC_OKCODE\t/11\n";
   $rows = 0;
}

sub opentran
{
   print "\t0\tT\tMI10\nSAPMM07I\t700\tX\n";
   print "\t\t\tRM07I-ZLDAT\t14.07.2006\n";
   print "\t\t\tRM07I-BLDAT\t14.07.2006\n";
   print "\t\t\tIKPF-WERKS\t$WERKS\n";
   print "\t\t\tIKPF-LGORT\t$LGORT\n";
   print "\t\t\tBDC_OKCODE\t/07\n";
   $curlgort = $LGORT;
}


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB