Hi Manju,
Apart from what Neha and Navneet suggested, you may have to check the data which is being passed in the BDCDATA internal table.
The negative/positive values are determined by the posting keys for the line items(40: Positive/50:Negative for GL postings).
The solution is to pass the amounts without sign and appropriate posting keys.
Hope this helps