Текущее время: Чт, дек 04 2025, 04:44

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google Feedfetcher


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

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