借助Redwood Script读取txt文件

2020-09-15 01:01发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我试图借助以下代码(用于运行以下代码的Redwood脚本定义)读取.txt文件。此外,我已经借助参数(文件)传递了.txt文件。

但是我遇到错误文件输入错误

我正在尝试使用两种类型的脚本代码来实现这一目标。 我已经在此处附加了脚本文件(文件名:read-the-txt-file.txt)

以下是代码:

read-the-txt-file.txt

(11.7 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我试图借助以下代码(用于运行以下代码的Redwood脚本定义)读取.txt文件。此外,我已经借助参数(文件)传递了.txt文件。

但是我遇到错误文件输入错误

我正在尝试使用两种类型的脚本代码来实现这一目标。 我已经在此处附加了脚本文件(文件名:read-the-txt-file.txt)

以下是代码:

read-the-txt-file.txt

(11.7 kB)
4条回答
jovirus
1楼 · 2020-09-15 01:21.采纳回答

您好Narayan,

要完成所需的操作,请尝试以下代码。

将jdName替换为作业定义的名称,将Partition p替换为作业分区的名称。

应将重新启动设置为1,将错误设置为2m延迟重新启动。

导入com.redwood.scheduler.api.model。*;
   导入com.redwood.scheduler.api.exception。*;
   导入com.redwood.scheduler.api.model.enumeration。*;
   导入java.util.Iterator;

   {
     字符串jdName =" YourJobDefinitionName";
     分区p = jcsSession.getPartitionByName(" GLOBAL");
     JobDefinition jd = jcsSession.getJobDefinitionByName(p,jdName);
    
     如果(jd!= null){
       jd.setRestartCount(1L); //将Max重新设置为1
      //获取"错误时"的状态处理程序
       FinalStatusHandler处理程序= jd.getFinalStatusHandlerByStatus(JobStatus.Error);
       if(handler == null){
        //状态处理程序不存在,请创建一个新的状态处理程序。
         处理程序= jd.createFinalStatusHandler();
       }
       handler.setAction(FinalStatusAction.Restart);
       handler.setStatus(JobStatus.Error);
       handler.setRestartDelayAmount(2L);
       handler.setRestartDelayUnits(TimeUnit.Minutes);
      
       尝试{
         jcsSession.persist();
       } catch(SchedulerAPIPersistenceException e){
         jcsErr.println(e.toString());
       }
       jcsOut.println(jd.getName()+"," +"创建的状态处理程序:" +" ON" + handler.getStatus()+"," +
       handler.getAction()+"," + handler.getRestartDelayAmount()+"," + handler.getRestartDelayUnits());
      
     }其他{
       jcsOut.println("错误:找不到作业定义:" + jdName);
     }
   } 

亲切的问候,

Bas Valentijn

xfwsx85
2楼-- · 2020-09-15 01:14

嗨Narayan,

由于您已经定义了File类型的作业定义参数,因此我假设您是在提交时将物理.txt文件上传到作业中。

如果这样做,该文件实际上将作为" upload.dat"附加到作业中。

您可以使用下面的示例代码来访问上载的文件,并输入其文本内容

导入java.io. *;
 导入com.redwood.scheduler.api.model。*;

 {
  //获取附件
   JobFile jobfile = jcsJob.getJobFileByName(" upload0.dat");
   字符串filepath = jobfile.getFileName();
   弦线;
    
   如果(jobfile!= null){
     jcsOut.println("完整路径和文件名:" +文件路径);
     FileInputStream in = new FileInputStream(filepath);
     BufferedReader br = new BufferedReader(new InputStreamReader(in));
     while((line = br.readLine())!= null){
       jcsOut.println(line);
     }
   }
 } 
三十六小时_GS
3楼-- · 2020-09-15 01:23

非常感谢!!

实际上,在文件读取的帮助下,我想更新流程定义。 我只想传递txt文件并更新"进程"状态("最大启动次数"和"发生错误"操作)。

您是否知道我应该调用哪种方法来更新进程状态(最大启动次数和发生错误操作)。

如果您可以共享这段代码,我可以帮助我进一步构建该代码。

注意:我们要更新作业列表的处理状态,在错误作业上应重新启动一次,动作延迟为2分钟。

如果您仍然可以帮助我找到红木脚本的文档,这可以帮助我进一步建立红木脚本,那么我是红木脚本的初学者。

非常感谢您的帮助!

大简至美
4楼-- · 2020-09-15 01:11

谢谢您!!! 效果很好:)

您精通Redwood脚本,对Man表示敬意!

一周热门 更多>