SYNCSORTを使用して、すべてのPackedDecimalフィールドを負の符号値に強制したいと思います。重要な要件は、2番目のニブルが16進数の「D」でなければならないことです。私にはうまくいく方法がありますが、それはあまりにも複雑に思えます。KISSの原則に沿って、誰かがより良い方法を持っていることを望んでいます。おそらく最後の4ビットにビットマスクを使用していますか?これが私が思いついたコードです。もっと良い方法はありますか?
* *このソートロジックは、すべてのPackedDecimalの金額を強制することを目的としています。 * B'.... 1101'値(16進数'xD')の負の符号があります。 * SORT FIELDS = COPY OUTFIL FILES = 1、 INCLUDE =(8,1、BI、NE、B'.... 1..1'、OR、* POSITIVE PACKED DECIMAL 8,1、BI、EQ、B'.... 1111')、* UNSIGNED PACKED DECIMAL OUTREC =(1:1,7、*+0を含む 8:(-1、MUL、8,1、PD)、PD、LENGTH = 1、 9:9,72) OUTFIL FILES = 2、 INCLUDE =(8,1、BI、EQ、B'.... 1..1'、AND、* NEGATIVE PACKED DECIMAL 8,1、BI、NE、B'.... 1111')、*符号なしパック10進数ではありません OUTREC =(1:1,7、*-0を含む 8:(+ 1、MUL、8,1、PD)、PD、LENGTH = 1、 9:9,72)