Apex: Как мне достичь моей переменной bk, указанной в нижней границе? - PullRequest
0 голосов
/ 30 октября 2018

Я получаю Variable does not exist: bk ошибку в этом коде:

    String MCLU1 = 'BK2200 0015 -- 41';

    if (MCLU1 != null || MCLU1 != '') {
        String bk = null; 
        String bk_full = null;
        String bk_extension = '--'; 
        String [] bkAfterSplit = null;

        bk_full = MCLU1; 
        if (bk_full.contains(bk_extension)) {
            bkAfterSplit = bk_full.split(' -- ');
            bk = bkAfterSplit[0];
            System.debug(LoggingLevel.DEBUG, 'bk inside my if : ' + bk);
        } else {
            bk = bk_full;
            System.debug(LoggingLevel.DEBUG, 'bk inside my else : ' + bk);
        }

    } else {
        System.debug(LoggingLevel.DEBUG, 'MCLU1__c is empty');
    }
    String external_id = 'FRA-BLIP-' + bk;
    System.debug(LoggingLevel.DEBUG, 'bk outside my if/else : ' + bk);
    System.debug(LoggingLevel.DEBUG, 'external_id : ' + external_id); 
Переменная

my bk в строке 23 не найдена. Но когда я пытаюсь (почти) один и тот же код в Eclipse с Java, все работает нормально. Пример кода ниже:

public class BkDoesNotExist {

public static void main(String[] args) {

    String MCLU1__c = "BK2200 0015 -- 41";
    // String MCLU1__c = null;

    String bk = null; 
    String bk_full = null;
    String bk_extension = "--"; 
    String [] bkAfterSplit = null;

    if (MCLU1__c != null || MCLU1__c != "") {

        bk_full = MCLU1__c; 
        if (bk_full.contains(bk_extension)) {
            bkAfterSplit = bk_full.split(" -- ");
            bk = bkAfterSplit[0];
            System.out.println("bk inside my if : " + bk);
        } else {
            bk = bk_full;
        }

    } else {
        System.out.println("MCLU1__c is empty");
    }

    String external_id = "FRA-BLIP-"+bk; 
    System.out.println("bk outside my if : " + bk);
    System.out.println("external_id : " + external_id);
}

}

Консоль показывает:

bk inside my if : BK2200 0015
bk outside my if : BK2200 0015
external_id : FRA-BLIP-BK2200 0015

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 30 октября 2018

OMG ... Я определил свои переменные только на 1 уровень под нужным местом ...

Вместо

String MCLU1 = 'BK2200 0015 -- 41';

if (MCLU1 != null || MCLU1 != '') {
    String bk = null; 
    String bk_full = null;
    String bk_extension = '--'; 
    String [] bkAfterSplit = null;

    bk_full = MCLU1; 

Должно быть

String MCLU1 = 'BK2200 0015 -- 41';

String bk = null; 
String bk_full = null;
String bk_extension = '--'; 
String [] bkAfterSplit = null;

if (MCLU1 != null || MCLU1 != '') {

    bk_full = MCLU1; 
...