ECTR宏:是否按DRAD值过滤?

2020-08-27 21:12发布

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

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


大家好,

是否可以通过DRAD表的值来过滤宏中的文档选择?

目标是过滤宏中没有排他性材料链​​接的文档。

这是我到目前为止得到的(它不起作用):

 function filter_selected_docs(){
    //获取活动选择(仅文档)
     KL_Selection = KEYLIST_FROM_CONTEXT(" active"," selected"," doc");
     if(KL_Selection.length> 0){
         set_Selection = CREATE_SET(KL_Selection);

        //使用材质链接过滤所有文档
         p_Filter1 = PARAMETER_MAP(" doc_filter_fields");
         p_Filter1.HASMATERIAL =" X";
         set_Filter1 = FILTER(set_Selection," doc",p_Filter1);
        
        //检查是否还有要检查的文件
         KL_WithMaterialLinks = KEYLIST_FROM_SET(set_Filter1);
         if(KL_WithMaterialLinks.length> 0){
            //使用独家材料链接过滤所有文档
            //注意:这将同时返回两个具有多个材料链接的文档
            //和只有一个实质链接的文档
             p_Filter2 = PARAMETER_MAP();
             p_Filter2.OBJECT_TYPE =" DRAW";
             p_Filter2.TABLENAME =" DRAD";
             p_Filter2.FIELDNAME =" CAD_POS";
             p_Filter2.SIGN =" I";
             p_Filter2.OPTION =" EQ";
             p_Filter2.LOW =" X";
             set_Filter2 = FILTER(set_Filter1," doc",p_Filter2);

            //从列表中删除所有"好"文档
             set_Filter3 = OPERATION_SET(" symmdiff",set_Filter1,set_Filter2);

            //检查结果:如果列表不为空,则有错误
             KL_Result = KEYLIST_FROM_SET(set_Filter3);
             if(KL_Result.length> 0){
                 WRITE_OBJECTLIST(KL_Result,"没有排他的材料链接的文件");
                 alert(KL_Result.length +"所选文档没有排他的材料链接。");
             }其他{
                 alert("成功!\ n所有选定的文档确实具有排他的材料链接。");
             }
         }其他{
             alert("所选文档中没有一个具有重要链接。");
         }
     }其他{
         alert("选择至少一个文档。");
     }
 } 

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

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


大家好,

是否可以通过DRAD表的值来过滤宏中的文档选择?

目标是过滤宏中没有排他性材料链​​接的文档。

这是我到目前为止得到的(它不起作用):

 function filter_selected_docs(){
    //获取活动选择(仅文档)
     KL_Selection = KEYLIST_FROM_CONTEXT(" active"," selected"," doc");
     if(KL_Selection.length> 0){
         set_Selection = CREATE_SET(KL_Selection);

        //使用材质链接过滤所有文档
         p_Filter1 = PARAMETER_MAP(" doc_filter_fields");
         p_Filter1.HASMATERIAL =" X";
         set_Filter1 = FILTER(set_Selection," doc",p_Filter1);
        
        //检查是否还有要检查的文件
         KL_WithMaterialLinks = KEYLIST_FROM_SET(set_Filter1);
         if(KL_WithMaterialLinks.length> 0){
            //使用独家材料链接过滤所有文档
            //注意:这将同时返回两个具有多个材料链接的文档
            //和只有一个实质链接的文档
             p_Filter2 = PARAMETER_MAP();
             p_Filter2.OBJECT_TYPE =" DRAW";
             p_Filter2.TABLENAME =" DRAD";
             p_Filter2.FIELDNAME =" CAD_POS";
             p_Filter2.SIGN =" I";
             p_Filter2.OPTION =" EQ";
             p_Filter2.LOW =" X";
             set_Filter2 = FILTER(set_Filter1," doc",p_Filter2);

            //从列表中删除所有"好"文档
             set_Filter3 = OPERATION_SET(" symmdiff",set_Filter1,set_Filter2);

            //检查结果:如果列表不为空,则有错误
             KL_Result = KEYLIST_FROM_SET(set_Filter3);
             if(KL_Result.length> 0){
                 WRITE_OBJECTLIST(KL_Result,"没有排他的材料链接的文件");
                 alert(KL_Result.length +"所选文档没有排他的材料链接。");
             }其他{
                 alert("成功!\ n所有选定的文档确实具有排他的材料链接。");
             }
         }其他{
             alert("所选文档中没有一个具有重要链接。");
         }
     }其他{
         alert("选择至少一个文档。");
     }
 } 
付费偷看设置
发送
2条回答
SAP砖家
1楼 · 2020-08-27 21:33.采纳回答

托马斯你好,

请查看此链接:

https://wiki.scn.sap.com/wiki/display/PLM/How+to+find+assembly+components+with+ambiguous+material+links

您可以找到此用例所需的过滤器参数,尽管它不是"通用" DRAD过滤器。

顺便说一句,对于您的用例,您实际上不需要任何宏。 只需将您的选择发送到对象列表,选择对象列表并在材质图标列上的ObjectBrowser中过滤表格。

您好Waldemar,

谢谢,它成功了!

一周热门 更多>