2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【BluePrism】コレクションの重複データを除外する

Last updated at Posted at 2019-12-17

こんなコレクションがあったとします。
image.png

例えば、フィールド1~3で値が重複している行は削除したいとします。
現状、BluePrismの標準VBOには、複数列の重複を見て行削除するオブジェクトはありませんでした。(あったらすみません)
なので自作しました。

想定する結果は以下の通りです。
3、4行目が値が重複しているので、3行目を残して4行目を削除しています。
上記の通り、残す行はコレクションデータの上から数えて最初の行とします。
image.png

###Input
最大3フィールドを見て重複判定できるようにしています。
image.png

###Output
image.png

###Code

Try
	If Target_Field1 = "" Then
		Success = False
		Message = "Target_Field1は必須項目です。"
		Exit Sub
	End If

	Dim New_Collection As DataTable
	New_Collection = Collection_In.Clone

	Dim count As Long = 0
	For Each r As DataRow In Collection_In.Rows
		If count = 0 Then
			New_Collection.ImportRow(r)
		Else
			Dim find_rows As DataRow()
			find_rows = New_Collection.Select(Target_Field1 & " = '" & r(Target_Field1) & "'" & _
					If(Target_Field2 <> "", " AND " & Target_Field2 & " = '" & r(Target_Field2) & "'", "") & _
					If(Target_Field3 <> "", " AND " & Target_Field3 & " = '" & r(Target_Field3) & "'", ""))

			If find_rows.Length = 0 Then
				New_Collection.ImportRow(r)
			End If
		End If
		count = count + 1
	Next

    Deduplication_Collection = New_Collection.DefaultView.ToTable
    Success = True
    Message = ""
Catch e As Exception
    Success = False
    Message = e.Message
End Try

##サンプル
https://github.com/falcslab/blueprism/tree/collection
BPA オブジェクト - コレクション重複削除.xml

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?