我的FlowPortal BPM培训提纲及收费标准

FlowPortal这几年一直有10个流程的无限用户的全功能版本,可以很方便在一些中小企业进行小规模尝试,作为起步,在软件方面零风险,零投入。

但是要用好这个BPM软件平台,除了看官网的在线帮助文档,必要的入门培训会大大减轻你的恐惧,极大缩短摸索时间。

这2017年以来,我一直在用的培训提纲,共计16个小时的课程。

Lesson #1、服务器准备、测试环境安装 – 2小时
Lesson #2、BPM架构、基础配置简介 – 2小时
Lesson #3、BPM企业管理器(组织机构、用户、角色、日历、权限) – 3小时
Lesson #4、BPM企业管理器(流程设计器、表单设计器)-3小时
Lesson #5、BPM流程开发基本流程、开发第一个流程 – 1小时
Lesson #6、开发第一个流程(实战课)-2小时
Lesson #7、流程相关权限管理- 2小时
Lesson #8、其它:BPM数据结构分析、高级编程等 – 1小时

疫情之下, 您可以选择给自己充充电,然后把自己公司的企业信息化提升下内功,当机会来临时,守得云开见月明。

按照惯例,我8小时的费用是5000元,需要学习全部内容就是10000元。

也可以根据自身需要选择部分课程,或者预约主题,按照每小时800元收费。

跟老板学管理#2:全局、换位与多视角

疫情来了,从员工和老板两个不同的群里看对危机的感知。

看上表的话,你觉得员工有错吗?没有? 你觉得老板有错吗? 更没有!

位置不同,视角迥异。

人和人为什么对同一个事实存在会有截然不同的认知结果

就像家庭里经常有:有一种冷叫你妈觉得冷!

公司里经常有:你很努力,但不能给你加薪升职!

因为每一个结果都是基于自己的角度,考虑自己所代表个( 群 )体的利益最大化。

盲人摸象的故事闻名于中今中外,同一只大象,由于人的位置不同,对大象的认知完全不同。

管理,乃至人生不需要懂太多道理,盲人摸象的故事如果真正弄明白,万事就通了。

事情本无对错,只因人( 心 )有别。

历史总在重复,只因时代与人不同。

做管理不能拘泥于一个角度,一个时刻,而应着眼于全局,调和矛盾,解决问题。

去掉了WordPress自定义摘要,翻页终于不错乱了

有读者反馈说看我博客的时候,翻页到后面或者搜索的第一页就出现页面错乱,我以为是个别文章的问题,昨晚花时间研究了一下,原来是WP摘要显示的问题。

因为2018年以前的博客是ASP平台的ZBlog,转换WordPress过来的时候,原来的自定义摘要也自动带过来了,但有些图片并没有替换src地址,还带着<#ZC_BLOG_HOST#>字样的url,狠了狠心,索性把所有的自定义摘要都删除了,可能会丢掉一些重要的信息。

我翻页到很多页,终于没有页面错乱了。

搞了个开发者专属Linux云主机

2018年重新捡起PHP,把博客从ASP平台的ZBlog转为WordPress,2019年弄了个VM虚拟机玩了一下CentOS的Linux系统,但弄虚拟机有点麻烦,下载CentOS安装包,安装到VM,基本配置跑起来,为了安全做快照,一个虚拟就得占用几十G,要是不用SSD硬盘,要不是内存足,真得跑得不爽。

这几年.NET Core突飞猛进,C#开发也开始从原来的.NET Framework逐步升级,为方便研究在腾讯云买了个Linux主机,1核4G2M只要376元2年。

昨晚花了2小时设置服务器端口放行,安装宝塔,配置LNMP(Linux+Nginx+MySQL+PHP),手动安装PHP7.3/4,先部署了个WordPress测试下(网站还得备案才行)。

有兴趣的话,赶紧趁有活动买一个玩玩。

活动链接地址:http://cloud.tencent.com/act/developer?sk=40902ab8511057d4d636e0640b291ce3

活动时间
2019年12月1日-2020年6月30日
活动对象
通过本活动开发者认证,且未在腾讯云付过费的用户(协作者除外)

通过我上述链接注册购买,我可以获得3个月的免费延长使用。你购买好加我微信,我发50元红包(3*376/24=47)给你。

.Net下请求Infor LN ERP WebService的5种方式

随着这几年Restful API的兴起,Web API遍地都是。以前老的WCF、WebService等的SOAP的份额越来越少。但总有些古老的应用或者企业级如ERP应用还是通过Web Service的方式提供对外集成接口。Infor LN ERP就是其中一个。

我这几年尝试了以下5中方法,与LN进行对接。

1、客户端代理类
2、动态代理类
3、WebClient
4、WebRequest
5、HttpClient

但前两种已经被我放弃了,后三种呢其实都是HTTP Request,通过标准的写法都可以很方便的与LN对接,注意两点:

1、拼接发起请求的XML
2、LN WebService返回500报错的时候,报错信息的转换
3、不要直接用using的方式使用HttpClient,因为由来已久的高并发时无法释放资源的bug,会让你崩溃。

至于后面三个方法,你可以从网络上找到一大把的Util/Helper类库,我就不贴出来了。

GitHub Desktop清除本地缓存

自从GitHub提供一个私有仓库最多3个协作者之后,我就开始尝试使用,一开始也在用.gitignore(https://github.com/github/gitignore/blob/master/VisualStudio.gitignore),后来增加Uni-App的代码,有个unpackage\dist的目录增加到忽略清单,但怎么都不生效。

后来只有求助百度、Google,得到解决方案如下,试了之后果然好了。

git rm -r --cached .
git add .
git commit -m "update .gitignore"

有几个注意事项:

1、已经安装了GitHub Desktop
2、打开CMD命令行模式窗口,切换到你的仓库目录,再执行上述命令

Find Something Worth Pursuing

时隔整整两年,跟我以前的E-Commerce/IT VP在Skype再次聊天,除了常规的寒暄,说一下近况,问候一下我们这里的疫情和家人朋友。谈到了一些职业规划和人生追求的事情。

这个单词Pursuing,其实我以前都不知道,只是在聊天时看到,然后就记住了。

想到了,很多时候,我们是从交流中学习,靠自己摸索这条路肯定不是最优的。

以前认为越多分享,越多收获。

现在有了新的认识,越多交流,也会越多收获。

如果你还是大四待毕业的学子,亦或是刚毕业没几年的职场新人,在这个疫情影响下的2020,记得多去打开心胸,去认识更多的人,记得在认识更厉害的人之前,通过一定的分享,也让别人感兴趣。

WordPress下载:429 Too Many Requests,怎么办

国内访问WordPress官方下载站:https://cn.wordpress.org/download/会经常出现:429 Too Many Requests – nginx的报错,怎么办呢?

这里通过翻墙得到最新版wordpress下载地址:https://cn.wordpress.org/latest-zh_CN.zip

那么如果你用的国外或香港的主机,只需要直接远程下载上面的地址,就能成功。

旧话重提:IIS将http强制https访问的正确方法

我以前写过《DTcms4/5中使用HttpModule将http访问301重定向到https》,也写过《使用Certify来自动申请并配置Let’s Encrypt免费SSL证书到IIS8》都提到了如何将IIS的http访问强制为https,如果你现在搜索.net强制https访问,或者iis强制https等关键词,会看到很多错误的指导。

常见问题1:要求SSL

比方说开启“ 要求SSL ”,然后用 403 的html(在 C:\inetpub\custerr\目录下,注意语言版本)重定向js代码,这个千万别用了。

<script type="text/javascript">  
    var url=window.location.href;  
    url=url.replace("http:","https:")  
    window.location.replace(url);
</script>

常见问题2:图形化设置IIS的URL重写工具

还有些介绍安装微软IIS的URL重写工具的,讲了半天一堆截图,操作下来因为版本不一样,还不一定成功,你直接按照我的方法,使用Web Platform Installer安装2.0版本:如下图。

然后也不要去IIS的管理器一个个站点去设置了,只需要在Web.config里面的 <system.webServer>节点内增加如下代码即可:

    <rewrite>
      <rules>
        <rule name="HTTP to HTTPS redirect" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
        </rule>
      </rules>
    </rewrite>

如果需要开启HSTS请用以下代码,首次访问不用https,但之后都会强制使用了,所以建议开启!

           <rules>
                <rule name="redirect to HTTPS" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"
                    redirectType="Permanent" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
                    <match serverVariable="RESPONSE_Strict_Transport_Security"
                        pattern=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="on" ignoreCase="true" />
                    </conditions>
                    <action type="Rewrite" value="max-age=31536000" />
                </rule>
            </outboundRules>

常见问题3:WebApi还在用自己写的filter重定向

这个方法未必不可以,但我不认为最优。我也在用,以下代码的BaseSystemInfo.ForceHttps是我的一个系统参数,可以自行切换,如果没有安装URL重写工具,本地测试可以http。

但有了URL重定向,这个重定向代码就不会执行了。

public override void OnAuthorization(HttpActionContext actionContext)
        {
            //先检查是否:强制https访问
            var request = actionContext.Request;
            if (BaseSystemInfo.ForceHttps && request.RequestUri.Scheme != Uri.UriSchemeHttps)
            {
                var html = "<p>Https is required</p>";
                if (request.Method.Equals(HttpMethod.Get) || request.Method.Equals(HttpMethod.Head))
                {
                    actionContext.Response = request.CreateResponse(HttpStatusCode.Found);
                    actionContext.Response.Content = new StringContent(html, Encoding.UTF8, "text/html");
                    //重定向
                    var httpsNewUri = new UriBuilder(request.RequestUri);
                    httpsNewUri.Scheme = Uri.UriSchemeHttps;
                    httpsNewUri.Port = 443;
                    actionContext.Response.Headers.Location = httpsNewUri.Uri;
                }
                else
                {
                    actionContext.Response = request.CreateResponse(HttpStatusCode.NotFound);
                    actionContext.Response.Content = new StringContent(html, Encoding.UTF8, "text/html");

                    //重定向
                    var httpsNewUri = new UriBuilder(request.RequestUri);
                    httpsNewUri.Scheme = Uri.UriSchemeHttps;
                    httpsNewUri.Port = 443;
                    actionContext.Response.Headers.Location = httpsNewUri.Uri;
                }
            }
        }

好了,看完这篇文字,你不要再去搜索查找可行的IIS强制https的ssl证书访问了。