22.移转 Aras PLM大小事-流程签核动态指派(1)

这一篇接续16.移转 Aras PLM大小事-系统使用者与角色

起初是想要将公司内的BPM专案请购的表单移转到PLM专案管理
把电子表单合并起来,但并非取代BPM功能

因此第一步是将角色的签核主管快速设定
1.设定角色10个主管层级,参考BPM设计方式
新增角色上的十个栏位,如下方cn_level0_manager对应董事长级

case "董事长级":
      dtRow["cn_level0_manager"] = manager;
      break;
  case "总经理级":
      dtRow["cn_level1_manager"] = manager;
      break;
  case "BU副总经理":
      dtRow["cn_level2_manager"] = manager;
      break;
  case "集团主管":
      dtRow["cn_level3_manager"] = manager;
      break;
  case "处长/协理/副总级":
      dtRow["cn_level4_manager"] = manager;
      break;
  case "资深经理级":
      dtRow["cn_level5_manager"] = manager;
      break;
  case "经理级":
      dtRow["cn_level6_manager"] = manager;
      break;
  case "副理级":
      dtRow["cn_level7_manager"] = manager;
      break;
  case "课长级":
      dtRow["cn_level8_manager"] = manager;
      break;
  case "组长级":
      dtRow["cn_level9_manager"] = manager;
      break;

2.角色与BPM的角色名称需要维护一个Key值,如工号、英文名、中文名
这里我选择用中文名,且简中必须翻译繁中

JPCChineseConverter.SimpleConvert jpc_convert = new JPCChineseConverter.SimpleConvert(); occu = jpc_convert.SimpleToTraditional(occu);//occu文字一律翻译繁体

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
namespace JPCChineseConverter
{
    public class SimpleConvert
    {
        public string SimpleToTraditional(string simpleStr)
        {
            return Convert(simpleStr, "Big5");
        }
        private string Convert(string SourceString, string Language)
        {
            string newString = string.Empty;
            switch (Language)
            {
                case "Big5":
                    newString = ChineseConverter.Convert(SourceString, ChineseConversionDirection.SimplifiedToTraditional);
                    break;
                case "GB2312":
                    newString = ChineseConverter.Convert(SourceString, ChineseConversionDirection.TraditionalToSimplified);
                    break;
                default:
                    newString = SourceString;
                    break;
            }
            return newString;
        }
    }
}

3.准备你的连线方式,必须要将Oracle.ManagedDataAccess元件加入到method-config.xml

<name>$(binpath)/Oracle.ManagedDataAccess.dll</name>

4.用Aras的Method确认连线

public DataSet RunSql(string sql)
{
    try
    {
        using (Oracle.ManagedDataAccess.Client.OracleConnection conn = new Oracle.ManagedDataAccess.Client.OracleConnection(connectionStr))
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }

            Oracle.ManagedDataAccess.Client.OracleCommand cmd = new Oracle.ManagedDataAccess.Client.OracleCommand(sql, conn);
            Oracle.ManagedDataAccess.Client.OracleDataAdapter DataAdapter = new Oracle.ManagedDataAccess.Client.OracleDataAdapter();
            DataAdapter.SelectCommand = cmd;

            DataSet ds = new DataSet();
            DataAdapter.Fill(ds);

            return ds;
        }
    }
    catch (Exception ex)
    {
        error_log = ex.ToString();
        return null;
    }
}

<<:  要怎麽计算「顾客终身价值(LTV)」?

>>:  Day 20 : Jenkins Pipeline与撰写Jenkinsfile

Day 25:动态规划(dynamic programming)

动态规划也是一种演算法设计模式,常用来解决最佳化问题。它的方法是将问题(通常是递回地)分解成子问题,...

[Day 30] 保护资讯资产

CISA书最後一章为资讯资产安全控制及安全事件管理,与CISSP内容大致重叠,差别在需以稽核角度查看...

30天学会C语言: Day 25-抽奖的原理

乱数 用於产生随机的数字,在 C 语言中乱数相关的函式定义在 stdlib.h rand() 随机回...

【Day7】Vocoder Model 以及 WaveNet 介绍

声码器 (Vocoder) 合成语音的概念最早是由贝尔实验室的工程师 - 荷马·达德利在 1928 ...

Day8 - 布署 GitHub 程序与串接聊天机器人 LINE Messaging API

GitHub 网址:https://github.com/ Heroku 网址:https://w...