蓝色棱镜,计算,替换,提取数量

时间:2018-04-29 11:43:19

标签: blueprism rpa

我需要在Blue Prism的计算阶段从文本中提取数字。文字是"请注意您的订单参考:123"数字" 123"每次订购新订单时,每种情况都会更改。我需要从最后提取数字并将其提取到数据项中。我目前正在使用:

正确("请注意您的订单参考:"," 3")并且无效。

任何建议都将不胜感激。

9 个答案:

答案 0 :(得分:1)

您可以使用Blue Prism中的计算步骤来实现这一目标,并且几乎可以正确使用它。

我假设你有整个字符串,包括订单参考号,加载到dataitem。我们称之为dataitem [orderReference]

Right([orderReference],3)然后会给你字符串中的最后三个字符(这将是数字)。

仅当订单参考长度始终为三位数时才有效。随着时间的推移,订单参考可能会增加到四位或五位数,您仍然只能获得最后三位数。

为了适应这种情况,您可以使用Len([orderReference])来获取整个字符串的长度。从长度中扣除42(在数字之前有42个字符 - 我假设在之后有一个空格:否则它将是41)。

只需在Right函数中使用该数字而不是3。

Right([orderReference],Len([orderReference])-42)

答案 1 :(得分:1)

我刚刚完成了BluePrism的Developer 1课程,并且具有相同的锻炼技能。我用了这个字符串:

ToNumber(替换([保存订单号],“请注意您的订单参考:”,“”))

它从字符串中删除了文本,将其替换为什么(“”),然后从字符串中剩余的数据中创建了一个数字。瞧,您有您的订单号。

答案 2 :(得分:1)

Replace("Please take note of your order reference:123",
  Left("Please take note of your order reference: 123",
  InStr("Please take note of your order reference: 123",":")),"")

注意:使用数据项代替“请注意您的订单参考:123”。

答案 3 :(得分:1)

将数据存储在变量中 A =请注意您的订单参考:123

使用替换([A],“请注意您的订单参考:空格”,“空格”) 然后修剪: 装饰(替换([A],“请注意您的订单参考:空格”,“空格”)) 然后转换为数字 Tonumber(Trim(Replace([A],“请注意您的订单参考:space”,“ space”)))

我有同样的情况,234澳元 我尝试了上述步骤,对我有帮助,祝您好运!

答案 4 :(得分:0)

        string test = "Please take note of your order reference: 123";
        string digits = new String(test.Where(Char.IsDigit).ToArray());
        Console.WriteLine(digits);

**你可以通过使用代码阶段实现这一点,我使用过C#。而不是将输出打印到控制台将其加载到数据项**

答案 5 :(得分:0)

因此,在您想要返回的值之前,您有一个唯一标识符":",您可以利用此标识。

1)使用InStr函数查找此唯一字符在字符串中的位置。

2)使用左功能将字符返回到包括唯一字符在内的字符。

3)然后,我们可以利用替换函数来取消刚返回的文本,只留下您想要的值。

4)chim in Trim功能(保持良好的房屋和清洁数据)

我已经展示了我在下面所做的事情(使用[Data1]作为你的字符串值),这与你在该值之前收到的消息无关,只要你有一个唯一的字符,它总会返回值(I意识到我可以用两个词说出来(它使它变得动态))

Trim(Replace([Data1], Left([Data1], InStr([Data1], ":")), ""))

希望这会有所帮助:)

答案 6 :(得分:0)

您可以在蓝色棱镜计算阶段使用以下语句

import UIKit
import Firebase
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    var tableView:UITableView!

    var posts = [Post]()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        tableView = UITableView(frame: view.bounds, style: .plain)
        view.addSubview(tableView)

        let cellNib = UINib(nibName: "PostTableViewCell", bundle: nil)
        tableView.register(cellNib, forCellReuseIdentifier: "postCell")
        var layoutGuide:UILayoutGuide!

        layoutGuide = view.safeAreaLayoutGuide

        tableView.leadingAnchor.constraint(equalTo: layoutGuide.leadingAnchor).isActive = true
        tableView.topAnchor.constraint(equalTo: layoutGuide.topAnchor).isActive = true
        tableView.trailingAnchor.constraint(equalTo: layoutGuide.trailingAnchor).isActive = true
        tableView.bottomAnchor.constraint(equalTo: layoutGuide.bottomAnchor).isActive = true

        tableView.delegate = self
        tableView.dataSource = self
        tableView.tableFooterView = UIView()
        tableView.reloadData()

        observePosts()

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func observePosts() {
        let postsRef = Database.database().reference().child("Data")

        postsRef.observe(.value, with: { snapshot in
            var tempPosts = [Post]()

            for child in snapshot.children{

                if let childSnapshot = child as? DataSnapshot,
                    let dict = childSnapshot.value as? [String:Any],
                    let title = dict["title"] as? String,
                    let logoImage = dict["image"] as? String,
                    let url = URL(string:logoImage),
                    let description = dict["description"] as? String{


                    let userProfile = UserProfile(title: title, photoURL: url)
                    let post = Post(id: childSnapshot.key, title: userProfile, description: description, image: userProfile)
                    print(post)
                    tempPosts.append(post)
                }
            }

            self.posts = tempPosts
            self.tableView.reloadData()
        })
    }

    func getImage(url: String, completion: @escaping (UIImage?) -> ()) {
        URLSession.shared.dataTask(with: URL(string: url)!) { data, response, error in
            if error == nil {
                completion(UIImage(data: data!)) 
            } else {
                completion(nil)
            }
            }.resume()
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return posts.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
        let cell = tableView.dequeueReusableCell(withIdentifier: "postCell", for: indexPath) as! PostTableViewCell
        cell.set(post: posts[indexPath.row])
        return cell
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        tableView.estimatedRowHeight = 50
        return UITableViewAutomaticDimension
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "PostDetailSegue" {


            if let indexPaths = self.tableView!.indexPathForSelectedRow{

            }

        }
    }
}

答案 7 :(得分:0)

使用Replace():

Trim(Replace(AllTextInElement, "Please take note of your order reference:", ""))

在代码块中使用正则表达式:

ExtractedNumbers = Regex.Match(AllTextInElement, "\d+")

答案 8 :(得分:0)

ToNumber(Replace([Order Reference], "Please take note of your order reference:",""))